Java 有没有办法让任何人都无法从exe文件中获取应用程序的源代码?

Java 有没有办法让任何人都无法从exe文件中获取应用程序的源代码?,java,Java,我想为我的java项目创建一个exe文件,但问题是任何人都可以从exe获取我的应用程序代码。有没有办法让任何人都无法从exe文件中获取应用程序的源代码 ? 有没有办法让任何人都无法从exe文件中获取应用程序的源代码 没有 和一个简短的阐述(我期望作者问): Java类被编译成字节码,由JVM执行。由于JVM主要设计为通过软件实现,JVM指令集包含某些高级操作,例如对象创建、方法调用等,这些操作允许在源代码中1:1映射到高级操作。这一点,加上JVM指令集有很好的文档记录,是重建Java源代码如此容

我想为我的java项目创建一个exe文件,但问题是任何人都可以从exe获取我的应用程序代码。有没有办法让任何人都无法从exe文件中获取应用程序的源代码 ?

有没有办法让任何人都无法从exe文件中获取应用程序的源代码

没有

和一个简短的阐述(我期望作者问): Java类被编译成字节码,由JVM执行。由于JVM主要设计为通过软件实现,JVM指令集包含某些高级操作,例如对象创建、方法调用等,这些操作允许在源代码中1:1映射到高级操作。这一点,加上JVM指令集有很好的文档记录,是重建Java源代码如此容易的主要原因之一

以及简短的阐述(针对所要求的内容): 从Java类中创建一个以可执行文件为目标的平台不是一项简单的任务。原因之一可能是整个Java标准库(包括essential
Java.lang
类)都是用Java实现的。
假设您已经解决了这个问题,最有可能的方法是提供本机实现的标准库类的子集,那么生成的汇编代码仍然可以反向工程回到源代码中。可以追踪类/对象/方法的边界并从那里开始工作。当然,生成的源代码可能不那么可读/可理解。

您可以使用应用程序创建exe,例如(正如我过去所做的那样)或其他免费软件(或付费软件,如果您想投资)。excelsior jet的问题是,如果你想免费使用,你只能得到90天的试用期,而且所有创建的前任在试用结束后都停止工作。前男友不是防裂的,但是他们确实让获得源代码变得更难。创建exe的另一个好处是,最终用户不会如此依赖于安装在计算机中的Java。

您读过关于字节码模糊处理的文章吗?你学到了什么?你不能创建java应用程序的.exe。它被编译成.class格式,然后由java虚拟机解释。“因此,没有人可以从exe中找到源代码”仅仅因为它是一个exe文件,人们仍然可以反编译它并找到源代码。基本上,你永远无法完全隐藏它。你最好的选择是尽可能地隐藏它,然后隐藏你的源代码,这样就很难理解和看到其中的任何结构。要了解模糊处理,请参阅此线程-1鼓励违反评估许可证我得到的问题有点模糊,但至少我实际上是在给这家伙一个合理的选择,一个可以满足他需要的免费软件。我不鼓励任何人违反任何评估许可证,只是指出,如果问题需要一个解决方案,90天后仍然有效,我提供的链接可能不是最佳选择。有更多完全免费的exe创作者在那里,可以做什么,他要求。我之所以提到excelsior jet,是因为它为新程序员提供了一个友好的GUI,并提供了一个免费试用,看看它是否符合配额。excelsior网站上也有一篇非常好的文章:有人知道excelsior jet是如何以某种方式制作exe的,因此找到源代码不是一件容易的工作吗,你可以试着从Excelsior的网页上了解这一点,比如:()他们在这里写道:“保护Java类不受反向工程影响的最好方法是根本不分发它们。提前编译是可能的。”“假设你已经解决了这个问题”指的是Excelsior JET,你应该是在做广告。”可以追踪类/对象/方法边界“是关于平台本机代码的。特别是因为E-JET将在生成的可执行文件中嵌入自己的Java库实现。内联替换不留任何边界。但是,还有一个问题——祝你好运,从中获得了源代码。我只是把事实弄清楚了。被否决的问题不是广告的好地方,是吗?@DmitryLeskov:说得好。顺便说一句,据我所见,E-JET仍然占据着市场的主导地位,因此没有真正的广告+1有关硬件加密的链接。