Skip to content

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\dist

Windows 的 exemsi 安装包通常需要安装 WiX Toolset,具体版本要求以当前 JDK 的 jpackage 文档和错误提示为准。PowerShell 使用反引号续行,反引号后不能再有空格。

常用参数

参数作用
--type输出 app-imageexemsi 等类型
--name应用与启动器名称
--inputJAR 和依赖所在目录
--main-jar主 JAR 文件名
--main-class无法从 JAR 清单识别时显式指定主类
--java-options传给 JVM 的运行参数,可重复指定
--icon应用图标,Windows 通常使用 .ico
--dest输出目录
--win-console显示控制台,适合调试或命令行程序

发布前验证

  1. 在没有项目源码和开发环境变量的干净机器上安装。
  2. 检查启动菜单、快捷方式、卸载和重复安装。
  3. 检查中文路径、带空格路径、日志目录和配置目录。
  4. 不要在正式安装包中默认开启 JDWP 远程调试端口;它会增加安全风险。
  5. 为每次发布设置明确的 --app-version,不要覆盖旧版本却保留相同版本号。