java 打包成exe有几种好办法?

言简意赅,话不多说,目前(2025 年)把 Java 程序“变成”Windows 可执行文件的主流做法可以归为 4 大类、10 余款工具。下面按“是否自带 JRE → 打包体积 → 维护活跃度”三个维度给你一份“选型速查表”,再给出典型步骤,几乎覆盖 2025 年还能闭眼用的所有方案。

java 打包成exe有几种好办法?


一、绿色独立版(自带精简 JRE,目标机器不用装 Java)

  1. jpackage(JDK 14+ 官方自带)
    2025 年仍是 Oracle/OpenJDK 官方唯一持续更新的原生打包器;一条命令生成 .exe + 自带精简运行时,体积 40-90 MB。
    典型命令:jpackage –type exe –name MyApp –input lib –main-jar myapp.jar –main-class com.xxx.Main –runtime-image target/jre
  2. 优点:免费、无第三方依赖、支持 MSI/EXE、自动签名、增量更新。
    缺点:JDK 14 才可用;老项目需先模块化或至少把依赖打进 fat-jar。
  3. Launch4j + 瘦身 JRE
    用 Launch4j 做启动外壳,再拿 jlink 裁一个“最小 JRE”放同目录,体积 25-50 MB。老项目不改代码就能跑,2025 年仍活跃更新。
  4. exe4j(商业/免费两种授权)
    向导式操作,可“捆绑 JRE”或“提示用户下载”;适合快速出原型。
  5. JSmooth(开源,已停更但仍能用)
    亮点:当机器无 JRE 时可弹窗帮用户自动下载;对老 Windows 兼容好,不过 2025 年已不维护,仅推荐维护旧项目时使用。

二、原生编译(Ahead-of-Time,完全脱离 JVM)

5. GraalVM Native Image
把字节码直接编译成 .exe,体积 10-30 MB,冷启动毫秒级。
2025 年 GraalVM 社区版已支持到 JDK 23,Spring Boot 3.2+ 官方一键打包插件 boot:build-image 直接出 exe。
限制:反射、动态代理、JNI 需要提前配置;体积虽小但编译慢。


三、安装包型(带独立 JRE 或在线下载器)

6. Install4j(商业)
功能最全:可做试用许可、自动更新、安装向导、自定义界面;适合商业软件。

  1. Inno Setup / Advanced Installer + jpackage/Launch4j 输出
    先让 jpackage 生成裸 exe,再用 Inno Setup 做安装包、写注册表、放桌面快捷方式,免费且组合灵活。

四、在线启动器(不捆绑 JRE,第一次运行再下载)

8. Java Web Start(已淘汰,仅旧系统维护)
9. GetDown、Update4j
2025 年仍有人维护,适合做“游戏启动器”那种自更新场景;首次启动会拉取 JRE 和 jar,后续增量补丁。


五、60 秒上手示例(jpackage 最快路径)

  1. 打包 fat-jar
    mvn package → 得到 target/myapp.jar
  2. 用 jlink 裁 JRE(如果 JDK 是全模块版)jlink –add-modules java.base,java.desktop –output target/jre
  3. 生成 exejpackage –type exe –name MyApp –input target –main-jar myapp.jar –runtime-image target/jre
  4. 3 分钟后 MyApp-1.0.exe 躺在 target/ 里,双击即可在没装 Java 的 Win10/11 运行。

结论速记

  • 想要官方+免费+长期维护 → 直接 jpackage
  • 想要原生小体积+秒启动 → GraalVM Native Image
  • 老项目不改代码、图省事 → Launch4j + jlink 瘦身 JRE
  • 商用安装包、自动更新、授权控制 → Install4j(或 Inno Setup 组合)

以上方案均已验证在 2025 年可用,按项目需求挑一个即可。祝打包顺利!

© 版权声明

相关文章

1 条评论

  • 头像
    不想干杂活的小吴 投稿者

    @柠檬水

    无记录
    回复