jpackage 命令参考
jpackage 可以把可运行 JAR 与 Java 运行时封装为应用镜像或平台安装包。建议先阅读完整打包流程,确认 JAR 能独立运行,再使用本页命令。
前置检查
powershell
java -version
jpackage --version
java -jar D:\app\input\my-app.jar--input 指向输入目录,--main-jar 只填写该目录中的 JAR 文件名。输出目录最好为空,避免把旧产物误认为本次结果。
生成应用镜像
应用镜像适合先验证打包结果,不安装到系统:
powershell
jpackage `
--type app-image `
--name my-app `
--input D:\app\input `
--main-jar my-app.jar `
--java-options "-Dfile.encoding=UTF-8" `
--win-console `
--dest D:\app\dist执行后直接启动 D:\app\dist\my-app\my-app.exe,检查启动、资源文件、配置读取和日志输出。
生成 Windows EXE 安装包
powershell
jpackage `
--type exe `
--name my-app `
--app-version 1.0.0 `
--input D:\app\input `
--main-jar my-app.jar `
--java-options "-Dfile.encoding=UTF-8" `
--win-dir-chooser `
--win-shortcut `
--win-shortcut-prompt `
--dest D:\app\distWindows 的 exe 或 msi 安装包通常需要安装 WiX Toolset,具体版本要求以当前 JDK 的 jpackage 文档和错误提示为准。PowerShell 使用反引号续行,反引号后不能再有空格。
常用参数
| 参数 | 作用 |
|---|---|
--type | 输出 app-image、exe、msi 等类型 |
--name | 应用与启动器名称 |
--input | JAR 和依赖所在目录 |
--main-jar | 主 JAR 文件名 |
--main-class | 无法从 JAR 清单识别时显式指定主类 |
--java-options | 传给 JVM 的运行参数,可重复指定 |
--icon | 应用图标,Windows 通常使用 .ico |
--dest | 输出目录 |
--win-console | 显示控制台,适合调试或命令行程序 |
发布前验证
- 在没有项目源码和开发环境变量的干净机器上安装。
- 检查启动菜单、快捷方式、卸载和重复安装。
- 检查中文路径、带空格路径、日志目录和配置目录。
- 不要在正式安装包中默认开启 JDWP 远程调试端口;它会增加安全风险。
- 为每次发布设置明确的
--app-version,不要覆盖旧版本却保留相同版本号。
