0

我有一个 Java 应用程序,我正在考虑将它作为小程序通过 Web 发布。我担心精通 java 的最终用户能够以某种方式查看源代码,因为我的 Web 服务器会在他们尝试使用小程序时将代码发送到他们的远程 jvm。

可以采取哪些预防措施来确保最终用户永远无法直接查看小程序的源代码?

我希望作为小程序发布可以在某种程度上保护代码的隐私,而不是发布带有用户可以解压缩的可下载 jar 的应用程序。这是真的?

4

3 回答 3

2

由于 Jar 本质上只是一个伪装的 zip 文件,因此没有办法阻止人们查看源代码。有许多可用于 Java 类的反编译器。大多数担心最终用户反编译源代码的开发人员使用混淆器来使代码或多或少不可读或至少难以理解。

抱歉,这个问题没有一个很好的答案,这只是 Java 语言的特性,您总是可以反编译源代码。

有一些选项,例如将 Java 应用程序包装在可执行文件中,这会使访问 Jar 本身变得更加困难,但显然您不能对 applet 执行此操作。

这是关于将 Java 转换为可执行文件的主题的(公司)博客文章: http ://www.excelsior-usa.com/articles/java-to-exe.html

还从关于该主题的 SO 线程中提取: 如何将 JAR 文件转换为 EXE 文件?

于 2013-10-24T15:50:25.553 回答
0

您可以使用一些可用的开源代码混淆器(许多人建议使用 ProGuard,不仅用于混淆,还用于代码最小化)。

于 2013-10-24T15:50:04.667 回答
0

如果有人真的想要你的代码,他们会得到的。你能做的最好的事情就是尝试让它变得更加困难。正如其他人所说,一种典型的方法是使用代码混淆器。

如果您使用 Maven 构建您的项目,您可以使用maven 中央存储库中的proguard-maven-plugin

但是由于您正在考虑将其作为小程序发布,如果您可以在服务器端代码上运行任何功能,您可以在保护您的代码库方面走得更远。

于 2013-10-24T16:07:42.263 回答