如果我有Java源文件(*.java)或类文件(*.class),如何将其转换为.exe文件?
我还需要一个安装程序。
如果我有Java源文件(*.java)或类文件(*.class),如何将其转换为.exe文件?
我还需要一个安装程序。
当前回答
您可以使用jar2exe将jar转换为exe。但是你需要购买软件。如果你需要一个开源软件,我会建议JSmooth。
其他回答
Launch4j
Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, a custom process name, and a Java download page in case the appropriate JRE cannot be found. – Launch4j's website
Javapackager
Java Packager工具编译、打包和准备Java和JavaFX应用程序以供分发。javapackager命令是命令行版本。 - Oracle的文档
javapackager实用程序随JDK一起发布。它可以生成带有-native exe标志的.exe文件,还有许多其他功能。
WinRun4J
WinRun4j是windows的java启动器。它是javaw.exe的替代品,具有以下优点: 使用INI文件指定类路径、主类、虚拟机参数、程序参数。 出现在任务管理器中的自定义可执行名称。 额外的JVM参数用于更灵活的内存使用。 内置的图标替换自定义图标。 [后面还有更多要点] - WinRun4J的网页
WinRun4J是一个开源实用程序。它有很多特点。
packr
打包JAR、资产和JVM,以便在Windows、Linux和Mac OS X上分发,添加本机可执行文件,使其看起来像本机应用程序。Packr最适合GUI应用程序。 - packr README
Packr是另一个开源工具。
吉斯穆斯
JSmooth是一个Java可执行包装器。它为您的java应用程序创建本机Windows启动程序(标准的.exe)。它使java部署更加流畅和用户友好,因为它能够自己找到任何已安装的java VM。 - JSmooth网站
JSmooth是开源的,也有一些特性,但是它非常古老。上一次发布是在2007年。
JexePack
JexePack是一个命令行工具(非常适合自动编写脚本),允许您打包Java应用程序(类文件),可选地连同它的资源(如GIF/JPG/TXT/等),到一个压缩的32位Windows EXE,它使用Sun的Java运行时环境运行。控制台和窗口应用程序都受到支持。 - JexePack的网站
JexePack是试用软件。生产使用需要付费,使用此工具创建的exe文件将显示“提醒”而无需付费。而且,上一次发布是在2013年。
InstallAnywhere
InstallAnywhere使开发人员可以轻松地为任何平台创建专业的安装软件。使用InstallAnywhere,您将快速适应行业变化,更快地进入市场,并交付引人入胜的客户体验。并且在发布之前了解项目OSS组件的脆弱性。 - InstallAnywhere网站
InstallAnywhere是一个为基于java的程序生成安装程序的商业/企业包。它可能能够创建.exe文件。
可执行JAR文件
作为.exe文件的替代方案,您可以通过向JAR清单添加一个入口点来创建一个在双击时自动运行的JAR文件。
欲了解更多信息
Excelsior的文章“将Java转换为EXE -为什么,何时,何时不和如何”是关于这个主题的一个很好的信息来源。
另请参阅配套文章“最佳JAR到EXE转换工具,免费和商业”。
如果您需要将整个应用程序转换为本机代码,即EXE加dll,有ExcelsiorJET。我发现它工作得很好,并提供了捆绑JRE的替代方案。
编辑:这是在2010年发布的-该产品已不再可用。
注意:自第一次提出这个问题以来,打包和部署已经发生了很大变化。给出的大多数答案甚至都不是JIGSAW (Java 9+)的最新版本。
如果目标是创建特定于操作系统的包,Oracle Docs Java 17打包工具用户指南中提供了相关信息。本指南包括jpackage工具的文档,该工具允许为Linux、macOS和Windows创建特定于平台的包。我认为Windows特定的指令应该包括生成.exe文件,因为这仍然是Windows用户安装和运行应用程序最熟悉的方式。
My own personal experience creating an exe (for sale on itch.io) was with the Java Platform, Standard Edition Deployment Guide, which included making use of the tool Inno Setup 5. This documentation is older, is for Java 9. The section directly pertaining to .exe packaging is located here As a first step, I used jlink to make a self-contained package. At the time I was first wrangling with this, I was unable to figure out how to get jpackage to work with my modular program. But now that Jigsaw has been around for several years, jpackage is now likely much easier to use, and would be my first choice for the next Java app I might publish for Windows users.
或者,您可以使用一些java-to-c转换器(例如JCGO),并将生成的C文件编译为目标平台的本机二进制(.exe)文件。