我正在学习使用 Java 进行 GUI 编程,并且正在使用 Netbeans IDE。我现在想创建一个在 Netbeans 之外运行的可执行程序;也就是说,它可以从我的桌面运行。
但是当我做了一些研究时,我的印象是不建议从 Java 程序创建 .exe。您能解释一下为什么不推荐吗?
最佳答案
不建议这样做,因为:
- 标准 Java 工具链不支持它。
exe
不可移植。不同的exe
格式用于不同的操作系统、硬件架构等。- Java 程序的独立
exe
需要包含完整的 JRE。 (您想分发 100Mb 的“hello world”可执行文件吗?) - 带有嵌入式 JRE 的 Java
exe
是一个安全问题。没有简单的方法来更新 JRE ...以修复最新一批安全漏洞。
如果(假设)Java 语言、库和工具链支持编译为二进制 + 链接,那么分发 exe
文件将是一个明智的解决方案。然而,Java 应用程序可以做的很多事情都依赖于标准 Java 的动态加载/JIT 编译实现。
已经有第三方尝试满足人们对独立 exe
文件的要求,但最终要么得到 Java 子集1,要么臃肿exe
文件。
1 - 例如,对于旧的 GNU gcj 编译器,该库是 Java 2 的子集(!)...并且(AFAIK)字节码的动态加载不是一个选项。有关 gcj 限制的更多信息,请参阅 this page .
关于java - 为什么不建议从 java 程序创建 .exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41691344/