You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java应用打包为独立可执行.exe文件(无需单独JRE文件夹)

将Java应用打包为单文件独立.exe(嵌入JRE)

你要的单文件.exe+内置JRE的需求可以通过以下几种方式实现:

方法1:用JDK官方工具jpackage(JDK 16+)

jpackage是Oracle从JDK16开始内置的标准化打包工具,支持将JRE和应用整合为单文件或安装包:

  1. 先把你的项目打包成可执行JAR(比如Mario.jar)
  2. 用jlink生成只包含应用依赖模块的精简JRE(大幅减少体积):
    jlink --module-path "${JAVA_HOME}/jmods" --add-modules java.base,java.desktop(根据你的应用依赖调整) --output custom-jre
    
  3. 用jpackage生成单文件exe:
    jpackage --type exe --input . --main-jar Mario.jar --name Mario --runtime-image custom-jre --win-console false
    
    生成的Mario.exe会内置你自定义的JRE,运行时无需外部依赖。

方法2:调整Launch4j配置实现JRE嵌入

你之前用Launch4j得到分离的exe和jre文件夹,是因为没开启嵌入功能:

  1. 打开Launch4j,在「JRE」选项卡中:
    • 勾选「Embed JRE」
    • 选择你的jre文件夹路径
    • 可以设置「Extract JRE to temp dir」让程序运行时自动把JRE解压到系统临时目录
  2. 在「Output file」设置最终生成的Mario.exe路径,点击「Build wrapper」即可生成内置JRE的单文件exe。

方法3:Excelsior JET(商业工具,有免费版)

这是一款将Java字节码编译为Windows本地机器码的工具,能直接生成单文件.exe,内置JRE环境,完全不需要外部依赖。免费版适合小型项目,商业版支持更复杂的应用场景。

注意事项

  • 嵌入JRE会显著增加exe体积,用jlink生成精简JRE是必要的优化步骤
  • 测试生成的exe在不同Windows版本(Win10/Win11等)上的运行情况,确保临时目录的解压权限正常

内容的提问来源于stack exchange,提问作者Bart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:35:12