我想向公众透露我的桌面java应用程序,但我不确定如何保护它免受逆向工程或源代码窃取?
是否可以将应用程序转换为exe文件?如果是的话,那还不足以保护它吗?
答案 0 :(得分:5)
如果真的值得某人花时间从二进制文件中反向设计源代码,他们会。你可能会稍微努力一点,但绝不可能。
答案 1 :(得分:5)
您可以使用Java混淆器,例如ProGuard。
ProGuard是一个免费的Java类文件收缩器,优化器,混淆器和预处理器。它检测并删除未使用的类,字段,方法和属性。它优化字节码并删除未使用的指令。 使用简短无意义的名称重命名剩余的类,字段和方法。最后,它预先验证了Java 6或Java Micro Edition的已处理代码。
答案 2 :(得分:3)
Java可执行文件和本机可执行文件都只是一堆机器代码(带有可选的注释和内容)。因此,反向工程的容易程度基本没有区别。
如果您正在使用javac进行编译,则可以使用-g:none
标志来消除所有调试信息被编译为可执行文件。