java - 在 .jar 中隐藏类

标签 java netbeans jar hide

每当我构建我的应用程序时,所有类(逻辑上)都在从中产生的 .jar 中可见。 以及一个保存 MYSQL 服务器信息的类(供应用程序连接)。但我不希望这些信息被公开可见!

如何“隐藏”此代码或“隐藏”类?

谢谢!!

最佳答案

我认为你的意思是你不希望有人对你的 jar 文件中的 .class 进行逆向工程。有很多反编译器可以做到这一点。 因此,您需要使用混淆器实用程序来混淆您的代码。

混淆的过程会将字节码转换为逻辑 反编译器极难选择的等效版本 分开。请记住,反编译过程非常复杂 复杂且不能轻易“调整”以绕过混淆 代码。大致流程如下:

  1. 使用常规编译器(即 JDK)编译 Java 源代码
  2. 运行混淆器,将编译后的类文件作为 范围。结果将是一个不同的输出文件(可能带有 不同的扩展名)。

此文件重命名为 .class 文件后,将在功能上 相当于原始字节码。不会影响性能 因为虚拟机仍然能够解释它。

这里有一篇文章更详细地描述了这个过程 介绍一个早期的混淆器 Crema:

http://www.javaworld.com/javaworld/javatips/jw-javatip22.html

关于java - 在 .jar 中隐藏类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17844319/

相关文章:

java - 如何使 Netbeans 6.7 识别 Facelet 中的 JSF 标签?

java - IOException:无法初始化群集Hadoop 2.4.0

java - 自动更新 Java jar

java - 为什么 JDK 源代码(src.zip)不包含运行时 jar(rt.jar)中的所有类

web-services - Netbeans基本Http身份验证Jax-WS

java - Java中接口(interface)的有用范围

java - 查找对象在哪个类中实例化

java - 如何检查java类是否包含默认构造函数?

Java:通过我的程序清除 NetBeans 控制台

java - 如何在 java/shell 中的 javax.comm.PortInUseException 后释放串口