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

一、绿色独立版(自带精简 JRE,目标机器不用装 Java)
- 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 - 优点:免费、无第三方依赖、支持 MSI/EXE、自动签名、增量更新。
缺点:JDK 14 才可用;老项目需先模块化或至少把依赖打进 fat-jar。 - Launch4j + 瘦身 JRE
用 Launch4j 做启动外壳,再拿 jlink 裁一个“最小 JRE”放同目录,体积 25-50 MB。老项目不改代码就能跑,2025 年仍活跃更新。 - exe4j(商业/免费两种授权)
向导式操作,可“捆绑 JRE”或“提示用户下载”;适合快速出原型。 - 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(商业)
功能最全:可做试用许可、自动更新、安装向导、自定义界面;适合商业软件。
- Inno Setup / Advanced Installer + jpackage/Launch4j 输出
先让 jpackage 生成裸 exe,再用 Inno Setup 做安装包、写注册表、放桌面快捷方式,免费且组合灵活。
四、在线启动器(不捆绑 JRE,第一次运行再下载)
8. Java Web Start(已淘汰,仅旧系统维护)
9. GetDown、Update4j
2025 年仍有人维护,适合做“游戏启动器”那种自更新场景;首次启动会拉取 JRE 和 jar,后续增量补丁。
五、60 秒上手示例(jpackage 最快路径)
- 打包 fat-jar
mvn package → 得到 target/myapp.jar - 用 jlink 裁 JRE(如果 JDK 是全模块版)jlink –add-modules java.base,java.desktop –output target/jre
- 生成 exejpackage –type exe –name MyApp –input target –main-jar myapp.jar –runtime-image target/jre
- 3 分钟后 MyApp-1.0.exe 躺在 target/ 里,双击即可在没装 Java 的 Win10/11 运行。
结论速记
- 想要官方+免费+长期维护 → 直接 jpackage
- 想要原生小体积+秒启动 → GraalVM Native Image
- 老项目不改代码、图省事 → Launch4j + jlink 瘦身 JRE
- 商用安装包、自动更新、授权控制 → Install4j(或 Inno Setup 组合)
以上方案均已验证在 2025 年可用,按项目需求挑一个即可。祝打包顺利!
© 版权声明
文章版权归作者所有,未经允许请勿转载。

@柠檬水