java - 为什么不建议从 java 程序创建 .exe?

标签 java netbeans exe

我正在学习使用 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/

相关文章:

Perl GUI 应用程序 - 创建 Exe

java - 切入点注释与最终字符串

java - GamePlay 类型未定义方法 getString(int)

java - Netbeans 运行 Java 但没有显示输出

c++ - 在 Window 中的 NetBeans 上设置 OpenGL

c# - 使用没有谷歌API的c#从谷歌驱动器下载文件

python - 制作 python 脚本的独立 .exe 文件

java - 我遇到此错误 java.lang.NullPointerException : Attempt to invoke interface method 'int java.util.List.size()' on a null object reference

java - 带嵌套帐户的 Spring Security

java - Netbeans 7.2 中的调试 View