如何保护java应用程序免受反向工程或代码窃取?

如何保护java应用程序免受反向工程或代码窃取?,java,obfuscation,reverse-engineering,source-code-protection,Java,Obfuscation,Reverse Engineering,Source Code Protection,我想向公众公开我的桌面java应用程序,但我不知道如何保护它免受逆向工程或源代码窃取 是否可以将应用程序转换为exe文件?如果是的话,这难道不足以保护它吗?Java可执行文件和本机可执行文件都只是一堆机器代码(带有可选的注释和东西)。因此,从逆向工程的容易程度来看,基本上没有区别 如果您使用javac进行编译,可以使用-g:none标志消除编译到可执行文件中的所有调试信息。如果确实值得某人花时间从二进制文件对源代码进行反向工程,他们会这样做。您可能会使它稍微困难一些,但决不是不可能的。您可以使用

我想向公众公开我的桌面java应用程序,但我不知道如何保护它免受逆向工程或源代码窃取


是否可以将应用程序转换为exe文件?如果是的话,这难道不足以保护它吗?

Java可执行文件和本机可执行文件都只是一堆机器代码(带有可选的注释和东西)。因此,从逆向工程的容易程度来看,基本上没有区别


如果您使用javac进行编译,可以使用
-g:none
标志消除编译到可执行文件中的所有调试信息。

如果确实值得某人花时间从二进制文件对源代码进行反向工程,他们会这样做。您可能会使它稍微困难一些,但决不是不可能的。

您可以使用Java模糊器,例如

ProGuard是一个免费的Java类文件收缩器、优化器、模糊器和预验证器。它检测并删除未使用的类、字段、方法和属性。它优化字节码并删除未使用的指令它使用无意义的短名称重命名其余的类、字段和方法。最后,它预先验证了Java 6或Java Micro Edition的已处理代码


下定决心的人总会找到一种方法来对你的代码进行反向工程。“我不知道如何保护它”让它变得糟糕(这是问这个问题的人的默认设置),没有人会费心对它进行反向工程。我想你的意思是“对你的二进制代码进行反向工程”。@Oil,我的本意是“从二进制文件对源代码进行反向工程,并隐含后者。如果不明显,我会纠正的。谢谢。ProGuard让未来的逆向工程师感到非常痛苦。嗯,这是你能做的最好的了。