1. 混淆器,将jar包混淆后反编译出来的东西看起来就很眼花,但如果耐心一点的高级程序员也是可以看出来的,方案不可行。 2. 对jar包进行加密,然后在jvm层重写类加载器对其进行解密,以达到对jar包的加密保护。包括用对称加密算法和非对称加密算法。不管用什么算法,在jvm层面的类加载器实现的话,其实也作用不大,因为类加载器本身被反编译出来后就基本暴露无遗了,方案不可行。 3. 可以修改java编译后的class文件的某些属性,以让反编译软件分析不了,但它也不可靠,只要按照class格式深入分析下也能反编译出来,方案不可行。 4. 修改JDK源码,定制JDK就涉及到JVM的整体改动,用户不会用