如何把java打包成exe
使用 Launch4j 打包 Java 为 EXE
Launch4j 是一个跨平台工具,可以将 Java 应用程序包装为 Windows 可执行文件(.exe)。它支持生成 32 位和 64 位可执行文件,并允许自定义图标、JRE 捆绑等。
下载并安装 Launch4j,启动后填写以下关键配置项:
- Output file: 指定生成的 .exe 文件路径
- Jar: 选择要打包的 Java 应用程序 JAR 文件
- Icon(可选): 设置 EXE 文件的图标(需 .ico 格式)
- JRE 选项卡: 可指定最小/最大 JRE 版本,或捆绑私有 JRE
配置完成后点击"Build wrapper"生成 EXE 文件。生成的 EXE 将自动查找系统 JRE 或使用捆绑的 JRE 运行。
使用 JPackage(JDK 14+)
JPackage 是 JDK 自带的打包工具,支持生成原生安装包(包括 Windows 的 EXE 安装程序)。使用前需确保已安装 WiX Toolset(Windows 平台)。
基本命令格式:
jpackage --input target/ --main-jar your-app.jar --main-class com.example.Main --name MyApp --type exe --win-console
关键参数说明:
--input: 包含 JAR 文件的目录--main-jar: 主 JAR 文件--main-class: 入口类(可选,若 JAR 有 MANIFEST 可省略)--type: 包类型(exe/msi)--win-console: 是否显示控制台窗口
使用 Excelsior JET 进行编译
Excelsior JET 是一个商业工具,可将 Java 应用程序编译为原生 EXE 文件,无需 JRE 即可运行。这种方法适合需要最高性能和保护知识产权的场景。
使用步骤:
- 安装 Excelsior JET 并启动 Jet Control Panel
- 创建新项目并指定主类/JAR 文件
- 在"Compilation"选项卡配置优化选项
- 在"Deployment"选项卡设置输出为 Windows EXE
- 执行编译生成独立的可执行文件
使用 GraalVM Native Image
GraalVM 的 Native Image 功能可将 Java 程序编译为独立可执行文件(包括 EXE)。这需要安装 GraalVM 和 Native Image 组件。
基本命令:
native-image -jar your-app.jar -H:Name=output.exe
注意事项:
- 需处理反射等动态特性(通过配置文件声明)
- 应用程序应支持提前编译(AOT)
- 生成的 EXE 文件启动速度快,但构建时间较长
注意事项
所有打包方法都应确保目标系统满足运行环境要求。对于非编译型打包(如 Launch4j),目标机器仍需安装适当版本的 JRE。编译型方案(如 Excelsior JET/GraalVM)生成的 EXE 通常更大,但可以完全脱离 JRE 运行。
建议先在开发环境测试打包结果,再分发到目标平台。对于复杂应用程序,可能需要处理资源文件路径、动态库加载等平台特定问题。







