java 如何打包成exe
使用 Launch4j 打包 Java 为 EXE
Launch4j 是一个跨平台工具,可以将 Java 应用程序打包为 Windows 可执行文件(EXE)。它提供了图形界面和命令行支持。
下载并安装 Launch4j,打开后配置以下关键参数:
- Output file:指定生成的 EXE 文件路径
- Jar:选择需要打包的 JAR 文件
- Icon(可选):设置 EXE 的图标
- Min JRE version:指定最低要求的 Java 版本
在 JRE 选项卡中设置 Java 运行环境要求:
- Bundled JRE path:可指定打包的 JRE 路径
- JRE min version:设置最低 JRE 版本
生成 EXE 后,它会自动查找系统 JRE 或使用打包的 JRE 运行程序。
使用 JPackage(JDK 14+)
JPackage 是 JDK 自带的打包工具,可以生成原生安装包和可执行文件。
jpackage --input target/ --name MyApp --main-jar myapp.jar --main-class com.example.Main --type exe --win-console
常用参数说明:
--input:包含 JAR 文件的目录--name:应用程序名称--main-jar:主 JAR 文件--main-class:主类(可选)--type:包类型(exe/msi)--win-console:保留控制台窗口
JPackage 会生成包含 JRE 的完整安装包,适合分发。

使用 Excelsior JET
Excelsior JET 是一个商业工具,可以将 Java 程序编译为原生可执行文件。
安装后使用命令行或 GUI:
- 创建新项目并选择主类
- 配置优化级别和目标平台
- 选择打包模式(安装包或独立 EXE)
- 构建项目生成 EXE 文件
Excelsior JET 的优势是性能优化和反编译保护,但需要商业许可。
使用 GraalVM Native Image
GraalVM 提供了将 Java 编译为本地可执行文件的能力。

安装 GraalVM 并配置环境后:
native-image -jar myapp.jar -H:Name=myapp.exe
生成的 EXE 文件不依赖 JVM,但有以下限制:
- 反射需要额外配置
- 动态类加载可能受限
- 应用启动时间较长
注意事项
打包 EXE 时需要考虑 Java 运行时:
- 可以捆绑 JRE 增加文件体积
- 依赖系统 JRE 需要用户预装
- 最小化 JRE 可减小包大小
安全考虑:
- 代码混淆保护知识产权
- 数字签名增加可信度
- 确保符合分发许可
调试建议:
- 保留原始 JAR 文件便于更新
- 测试不同 Windows 版本兼容性
- 检查依赖项是否完整打包






