核心打包方案
使用Launch4j(推荐)
原理:将JAR包封装为EXE,自动处理JRE依赖
步骤:
- 下载安装 Launch4j
- 配置基础选项:
- Output file:生成的EXE路径(如
app.exe
) - Jar:选择你的JAR文件
- Icon(可选):设置EXE图标(需
.ico
格式)
- Output file:生成的EXE路径(如
- 配置JRE依赖:
- Min JRE version:最低Java版本(如
8.0
) - JRE路径选项:
- 若用户已有JRE:选
Search registry
(默认) - 需捆绑JRE:选
Bundled
并指定JRE文件夹
- 若用户已有JRE:选
- Min JRE version:最低Java版本(如
- 生成EXE:点击工具栏齿轮图标
优点:免费、轻量、支持错误提示
缺点:需手动捆绑JRE实现免环境运行
使用jpackage(JDK14+官方工具)
原理:JDK内置工具,生成安装包
步骤:
- 确保JDK≥14
- 命令生成安装包:
jpackage --input target/ --name MyApp --main-jar app.jar --main-class com.example.Main --type exe --win-console
--input
:JAR所在目录--win-console
:保留控制台窗口(GUI程序去掉此参数)
- 自动生成包含JRE的安装包(位于输出目录)
优点:官方支持、自动捆绑JRE、生成安装程序
缺点:需新版JDK、输出文件较大(含JRE)
使用Excelsior JET(高性能商业方案)
原理:编译Java为本地代码
步骤:
- 下载 Excelsior JET
- 导入JAR文件,按向导配置
- 选择编译模式:
- Trial Run:测试兼容性
- Full Compilation:生成优化后的EXE
- 输出独立EXE(可选捆绑JRE)
优点:启动快、反编译难度高
缺点:付费(免费版有试用限制)
关键注意事项
- JRE处理:
- 方案①:要求用户预装Java(降低EXE体积)
- 方案②:用jpackage/Launch4j捆绑JRE(增加100~200MB)
- 依赖管理:
- 使用Maven/Shadow插件生成
fat-jar
(包含所有依赖):<!-- Maven的pom.xml配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.4.1</version> <executions> <execution> <phase>package</phase> <goals><goal>shade</goal></goals> </execution> </executions> </plugin>
- 使用Maven/Shadow插件生成
- 图标与元数据:
- EXE图标:通过Launch4j或
Resource Hacker
工具修改 - 版本信息:jpackage支持
--win-version-attributes
添加公司名等
- EXE图标:通过Launch4j或
- 安全提示:
- 未签名EXE可能被Windows拦截
解决方案:购买代码签名证书(如DigiCert)或引导用户点击“更多信息→仍要运行”
- 未签名EXE可能被Windows拦截
方案选择建议
场景 | 推荐工具 | 理由 |
---|---|---|
简单分发免费程序 | Launch4j | 免费、快速、兼容性好 |
需安装向导的商业软件 | jpackage | 官方支持、自动捆绑JRE |
高性能/反保护需求 | Excelsior JET | 本地编译、启动速度快 |
常见问题解决
- EXE闪退:
用命令行运行EXE查看报错(如缺失依赖库) - 32/64位系统兼容:
捆绑JRE时需匹配目标系统架构 - 杀毒软件误报:
提交EXE到VirusTotal检测并联系厂商申诉
引用说明:
- Launch4j官方文档:http://launch4j.sourceforge.net/docs.html
- Oracle jpackage指南:https://docs.oracle.com/en/java/javase/17/jpackage/
- Excelsior JET教程:https://www.excelsiorjet.com/docs/
- Maven Shade插件:https://maven.apache.org/plugins/maven-shade-plugin/
本文方法经JDK17+Windows 11环境实测,更新于2025年10月。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/41712.html