如果我有一个Java源文件(*.java)或一个类文件(*.class),我该如何将其转换为.exe文件?
我还需要一个程序安装程序.
Java Packager工具编译,打包和准备Java和JavaFX应用程序以进行分发.javapackager命令是命令行版本.
- Oracle的文档
该javapackager
实用程序随JDK一起提供.它可以生成带有-native exe
标志的.exe文件,以及许多其他内容.
WinRun4j是Windows的java启动器.它是javaw.exe的替代品,具有以下优点:
使用INI文件指定classpath,main class,vm args,program args.
任务管理器中显示的自定义可执行文件名
额外的JVM args可以更灵活地使用内存.
用于自定义图标的内置图标替换器.
[更多要点跟随]
- WinRun4J的网页
WinRun4J是一个开源实用程序.它有很多功能.
打包JAR,资产和JVM以便在Windows,Linux和Mac OS X上进行分发,添加本机可执行文件以使其看起来像本机应用程序.Packr最适合GUI应用程序.
- packr自述文件
packr是另一个开源工具.
JSmooth是一个Java可执行包装器.它为您的Java应用程序创建本机Windows启动程序(标准.exe).它使java部署更加顺畅和用户友好,因为它能够自己找到任何已安装的Java VM.
- JSmooth的网站
JSmooth是开源的,具有功能,但它很老.最后一个版本是在2007年.
JexePack是一个命令行工具(非常适合自动脚本编写),允许您将Java应用程序(类文件),可选地及其资源(如GIF/JPG/TXT /等)打包到一个压缩的 32位Windows EXE中,使用Sun的Java Runtime Environment运行.支持控制台和窗口应用程序.
- JexePack的网站
JexePack是试用版.生产使用需要付款,使用此工具创建的exe文件将显示"提醒"而无需付款.此外,最后一个版本是在2013年.
InstallAnywhere使开发人员可以轻松地为任何平台创建专业的安装软件.借助InstallAnywhere,您可以快速适应行业变化,更快地进入市场并提供引人入胜的客户体验.在发货之前了解项目的OSS组件的漏洞.
- InstallAnywhere的网站
InstallAnywhere是一个商业/企业包,可为基于Java的程序生成安装程序.它可能能够创建.exe文件.
作为.exe文件的替代方法,您可以通过向JAR清单添加入口点来创建双击时自动运行的JAR文件.
关于这个主题的一个很好的信息来源是Excelsior的文章" 将Java转换为EXE - 为什么,何时,何时以及如何 ".
另请参阅配套文章" 最佳JAR到EXE转换工具,免费和商业 ".
Launch4j是一个跨平台工具,用于将Java应用程序包装为轻量级Windows本机可执行文件中的jar.可执行文件可以配置为搜索某个JRE版本或使用捆绑的版本,并且可以设置运行时选项,例如初始/最大堆大小.包装器还通过应用程序图标,本机预JRE启动屏幕,自定义进程名称和Java下载页面提供更好的用户体验,以防无法找到适当的JRE.
- Launch4j的网站
更新: GCJ已经死了.它在2016 年正式从GCC项目中删除.甚至在此之前,它实际上已经放弃了七年,并且无论如何它都不能完全作为可行的替代Java实现.
去找另一个Java AOT编译器.
GCJ:GNU Compiler for Java可以将Java源代码编译为本机机器代码,包括Windows可执行文件.
虽然并非GCJ支持Java中的所有内容,尤其是GUI组件(请参阅 支持哪些Java API?支持的完整性是什么?来自FAQ的问题).我没有太多使用GCJ,但是从我对控制台应用程序进行的有限测试来看,它看起来很好.
使用GCJ创建独立可执行文件的一个缺点是生成的EXE的大小可能非常大.有一次我在GCJ中编译了一个简单的控制台应用程序,结果是一个大约1 MB的可执行文件.(可能有一些我不知道的方法.另一种选择是可执行的压缩程序.)
在开源安装程序方面,Nullsoft Scriptable Install System是一个可编写脚本的安装程序.如果您感到好奇,可以使用用户提供的示例来了解如何检测是否存在JRE,并在未安装所需的JRE时自动安装.(只是为了让你知道,我之前没有使用过NSIS.)
有关使用NSIS安装Java应用程序的更多信息,请查看我对 " 分发Java应用程序的最佳方式是什么? " 这一问题的回答.
您可以使用以下代码创建批处理文件:
start javaw -jar JarFile.jar
并使用任何.bat到.exe转换器将.bat转换为.exe.
我们使用Install4J为windows或unix环境构建安装程序.
它可以轻松定制,直到您想要为标准对话无法完成的特殊操作编写脚本.但即使我们使用它设置Windows服务,我们也只使用标准组件.
安装程序+启动器
windows或unix
Java编写脚本
蚂蚁任务
许多可定制的标准面板和操作
可选地包括或下载JRE
也可以启动Windows服务
多种语言
我认为Launch4J来自同一家公司(只是发射器 - 没有安装程序).
PS:遗憾的是,我没有因此获得报酬.我只是喜欢那个工具.
最新的Java Web Start已得到增强,可实现良好的脱机操作以及允许"本地安装".值得研究.
编辑2018:Java Web Start不再与最新的JDK捆绑在一起.Oracle正在推动"使用封闭的JRE在本地部署您的应用程序"模式.
恕我直言JSmooth似乎做得很好.
如果您需要将整个应用程序转换为本机代码,即EXE加DLL,则有ExcelsiorJET.我发现它运行良好,并提供了捆绑JRE的替代方案.
我会说launch4j是将java源代码(.java)转换为.exe文件的最佳工具你甚至可以用它来捆绑一个jre进行分发,甚至可以将exe图标化.虽然应用程序的大小增加,但即使用户没有安装jre,它也能确保应用程序完美运行.它还确保您能够提供应用程序所需的特定jre,而无需用户单独安装它.但不幸的是,java失去了它的重要性.它的多平台支持完全被忽略,最终应用程序仅支持Windows.但是,如果你只为Windows用户提供服务,这不是什么大问题.
你可以使用Janel.最后一个用作应用程序启动器或服务启动器(可从4.x获得).