每当我构建我的应用程序时,所有类(逻辑上)都在从中产生的 .jar 中可见。 以及一个保存 MYSQL 服务器信息的类(供应用程序连接)。但我不希望这些信息被公开可见!
如何“隐藏”此代码或“隐藏”类?
谢谢!!
最佳答案
我认为你的意思是你不希望有人对你的 jar 文件中的 .class 进行逆向工程。有很多反编译器可以做到这一点。 因此,您需要使用混淆器实用程序来混淆您的代码。
混淆的过程会将字节码转换为逻辑 反编译器极难选择的等效版本 分开。请记住,反编译过程非常复杂 复杂且不能轻易“调整”以绕过混淆 代码。大致流程如下:
- 使用常规编译器(即 JDK)编译 Java 源代码
- 运行混淆器,将编译后的类文件作为 范围。结果将是一个不同的输出文件(可能带有 不同的扩展名)。
此文件重命名为 .class 文件后,将在功能上 相当于原始字节码。不会影响性能 因为虚拟机仍然能够解释它。
这里有一篇文章更详细地描述了这个过程 介绍一个早期的混淆器 Crema:
http://www.javaworld.com/javaworld/javatips/jw-javatip22.html
关于java - 在 .jar 中隐藏类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17844319/