java程序如何打包成exe
使用 Launch4j 打包
Launch4j 是一个跨平台工具,可将 Java 应用程序打包为 Windows 可执行文件(.exe)。它提供了图形界面和命令行支持,适合不熟悉脚本的用户。
下载并安装 Launch4j,打开后配置以下关键项:
- Output file:指定生成的 .exe 文件路径。
- Jar:选择需要打包的 Java 应用程序 JAR 文件。
- Min JRE version:设置最低要求的 JRE 版本。
- Icon(可选):为 .exe 文件添加自定义图标。
完成配置后点击“Build wrapper”生成 .exe 文件。Launch4j 会创建一个轻量级启动器,自动检测并调用系统 JRE 运行程序。
使用 JPackage 工具
JPackage 是 JDK 14 引入的官方打包工具,支持生成原生安装包(包括 .exe)。确保已安装 JDK 14 或更高版本,并配置环境变量。
通过命令行运行以下指令:

jpackage --input target/ --main-jar your-app.jar --main-class com.example.Main --type exe --name MyApp --dest output/
--input指定包含 JAR 文件的目录。--main-jar和--main-class定义主 JAR 和入口类。--type设置为exe生成 Windows 可执行文件。--dest指定输出目录。
JPackage 会生成包含 JRE 的独立安装包,适合分发无需预装 Java 的环境。
使用 Inno Setup 创建安装程序
Inno Setup 是一款免费的 Windows 安装程序制作工具,可将 Java 程序及其依赖打包为专业安装包。
编写一个脚本文件(如 setup.iss),配置安装包信息:

[Setup]
AppName=MyJavaApp
AppVersion=1.0
DefaultDirName={pf}\MyJavaApp
OutputDir=output
OutputBaseFilename=Setup
Compression=lzma
[Files]
Source: "target\*.jar"; DestDir: "{app}"
Source: "jre\*"; DestDir: "{app}\jre"; Flags: recursesubdirs
[Icons]
Name: "{group}\MyApp"; Filename: "{app}\jre\bin\java.exe"; Parameters: "-jar MyApp.jar"
运行 Inno Setup 编译器生成安装程序。此方法适合需要包含自定义 JRE 或复杂文件结构的场景。
使用 GraalVM 原生镜像
GraalVM 支持将 Java 程序编译为原生可执行文件,彻底消除 JVM 依赖。安装 GraalVM 并配置环境变量后,使用以下命令:
native-image -jar your-app.jar --no-fallback -H:Name=output.exe
--no-fallback确保完全原生编译(否则可能回退到 JVM 模式)。-H:Name指定输出文件名。
生成的 .exe 文件可直接运行,启动速度快,但需注意部分 Java 特性(如反射)可能需要额外配置。
注意事项
- JRE 依赖:除 GraalVM 原生镜像外,其他方法需确保目标系统安装匹配的 JRE,或打包时包含 JRE。
- 资源文件:若程序依赖外部资源(如图片、配置文件),需在打包时正确设置路径。
- 版本兼容:JPackage 和 GraalVM 需要较新 JDK 版本,旧项目可能需升级构建环境。
- 签名:为 .exe 文件添加代码签名可避免安全警告,需购买数字证书。






