.jar到.exe的操作如何工作?

时间:2016-06-23 16:26:10

标签: java exe

你知道用于将java项目编译成.exe的程序的jar我想知道这样的软件是如何工作的。

他们执行此操作的方法是什么?

他们是否将jar文件的字节码更改为exe文件?

3 个答案:

答案 0 :(得分:1)

基本上可执行文件只是启动你的jar。它仍然是字节码,仍然可以在JVM中运行。

答案 1 :(得分:1)

至少有两种方法可以生成用户可以单击的.exe文件。

更简单的是包装所需的java环境,exe只作为标准VM的启动器。 JRE可以包含在包装的应用程序中,或者可以使用系统安装的JRE。 launch4j(http://launch4j.sourceforge.net/)是一个以这种方式工作的例子。

它还可以独立地在部署之前完成JIT(生成CPU可以执行的本机代码)的工作。有(是?)gcj(https://gcc.gnu.org/java/)并且至少有一种商业产品(Excelsior JET)提供此功能。

至于你的问题“如何”:包装不会改变代码,它只是提供了一个启动程序,它为运行java代码设置了必要的环境,使进程自动化到最终用户不需要的程度知道他们正在运行java代码。这可以与任何安装程序包结合使用,以提供免费的“点击安装”和“点击运行”用户体验(例如InnoSetup)。

对本机代码的编译与任何其他编译器基本相同,将输入语言转换为本机代码。由于许多javas功能是运行时动态的(例如,类加载,反射),这需要相当多的努力来翻译。

答案 2 :(得分:0)

这些msi和exe文件更像是zip文件,它提取jar文件及其依赖项并将它们放在适当的位置。然后,他们会添加快捷方式和指向启动程序所需文件的链接。

你可以在这里阅读。 http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm

以及更多。 http://wixtoolset.org/