我正在学习使用Java学习GUI编程,我正在使用Netbeans IDE.我现在想创建一个在Netbeans之外运行的可执行程序; 即,以便它可以从我的桌面运行.
但是当我做一些研究时,我的印象是不建议从Java程序创建.exe.你能不能向我解释为什么不推荐它?
不建议这样做,因为:
标准Java工具链不支持它.
一个exe
不便携.不同的exe
格式用于不同的操作系统,硬件架构等.
exe
Java程序的自包含需要包含完整的JRE.(你想发布100Mb"hello world"可执行文件吗?)
exe
具有嵌入式JRE的Java 是一个安全问题.没有简单的方法来更新JRE ...来修复最新一批安全漏洞.
如果(假设)Java语言,库和工具链支持编译为二进制+链接,那么分发exe
文件将是一个明智的解决方案.但是,Java应用程序可以做的很多事情取决于标准Java的动态加载/ JIT编译实现.
已经/是第三方尝试满足人们对自包含exe
文件的要求,但您最终会得到Java子集1或膨胀exe
文件.
1 - 例如,对于旧的GNU gcj
编译器,库是Java 2的一个子集(!)...而且(AFAIK)字节码的动态加载不是一个选项.有关gcj限制的更多信息,请参阅此页面.