为什么不推荐从java程序创建.exe?

0 java netbeans exe

我正在学习使用Java学习GUI编程,我正在使用Netbeans IDE.我现在想创建一个在Netbeans之外运行的可执行程序; 即,以便它可以从我的桌面运行.

但是当我做一些研究时,我的印象是不建议从Java程序创建.exe.你能不能向我解释为什么不推荐它?

Ste*_*n C 5

不建议这样做,因为:

  • 标准Java工具链不支持它.
  • 一个exe不便携.不同的exe格式用于不同的操作系统,硬件架构等.
  • exeJava程序的自包含需要包含完整的JRE.(你想发布100Mb"hello world"可执行文件吗?)
  • exe具有嵌入式JRE的Java 是一个安全问题.没有简单的方法来更新JRE ...来修复最新一批安全漏洞.

如果(假设)Java语言,库和工具链支持编译为二进制+链接,那么分发exe文件将是一个明智的解决方案.但是,Java应用程序可以做的很多事情取决于标准Java的动态加载/ JIT编译实现.

已经/是第三方尝试满足人们对自包含exe文件的要求,但您最终会得到Java子集1或膨胀exe文件.


1 - 例如,对于旧的GNU gcj编译器,库是Java 2的一个子集(!)...而且(AFAIK)字节码的动态加载不是一个选项.有关gcj限制的更多信息,请参阅此页面.