以下是 jpackage 工具的详细参数说明,结合官方文档及实际使用场景整理而成:
一、通用参数
-
**
--type/-t**- 作用:指定输出包的类型。
- 可选值:
app-image(生成独立应用文件夹)、exe(Windows可执行文件)、msi(Windows安装包)、dmg(macOS镜像)、pkg(macOS安装包)、deb/rpm(Linux包)。 - 示例:
--type exe生成Windows EXE文件。
-
**
--name/-n**- 作用:设置应用名称,影响输出文件名和安装目录名。
- 示例:
--name MyApp生成的EXE文件为MyApp.exe。
-
**
--dest/-d**- 作用:指定输出目录,默认为当前目录。
- 示例:
--dest release将文件输出到release文件夹。
-
**
--app-version**- 作用:定义应用版本号,影响安装包元数据。
- 示例:
--app-version 1.2.0。
-
**
--vendor**- 作用:设置供应商信息,显示在系统安装信息中。
- 示例:
--vendor "My Company"。
二、运行时镜像相关参数
-
**
--runtime-image**- 作用:指定自定义JRE目录(需通过
jlink生成),实现无外部Java依赖。 - 示例:
--runtime-image custom-jre。
- 作用:指定自定义JRE目录(需通过
-
**
--module-path/-p**- 作用:指定模块路径(分号分隔),用于模块化应用打包。
- 示例:
-p "javafx-sdk/lib;mods"。
-
**
--add-modules**- 作用:显式添加依赖模块,与
jlink配合使用。 - 示例:
--add-modules java.base,javafx.controls。
- 作用:显式添加依赖模块,与
三、应用映像相关参数
-
**
--input/-i**- 作用:指定输入目录,包含所有需要打包的文件(JAR、资源等)。
- 示例:
--input target包含target目录下的JAR文件。
-
**
--main-jar**- 作用:指定主JAR文件(非模块化应用必须),需在输入目录中。
- 示例:
--main-jar myapp.jar。
-
**
--main-class**- 作用:显式指定主类名(当JAR的
MANIFEST.MF未定义主类时使用)。 - 示例:
--main-class com.example.Main。
- 作用:显式指定主类名(当JAR的
-
**
--icon**- 作用:设置应用图标(Windows需
.ico,macOS需.icns)。 - 示例:
--icon app.ico。
- 作用:设置应用图标(Windows需
四、启动器相关参数
-
**
--arguments**- 作用:传递命令行参数给应用程序。
- 示例:
--arguments "--debug --port=8080"。
-
**
--java-options**- 作用:设置JVM参数(如堆内存、系统属性)。
- 示例:
--java-options "-Xmx512m -Dlog.level=INFO"。
-
**
--win-console**- 作用:为Windows应用启用控制台窗口(适合命令行程序)。
- 示例:
--win-console。
-
**
--win-shortcut**- 作用:在开始菜单创建快捷方式(仅限Windows)。
- 示例:
--win-shortcut。
五、高级参数
-
**
--temp**- 作用:指定临时目录路径,默认自动清理。
- 示例:
--temp build/tmp。
-
**
--verbose**- 作用:启用详细日志输出,用于调试。
-
**
--bind-services**- 作用:链接服务提供者模块(需与
jlink配合)。
- 作用:链接服务提供者模块(需与
注意事项
-
Windows依赖:
- 生成
msi或exe需安装 WiX 3.11+ 并配置环境变量。
- 生成
-
模块化与非模块化:
- 模块化应用优先使用
--module-path和-m,非模块化应用用--main-jar。
- 模块化应用优先使用
-
体积优化:
- 通过
jlink生成精简JRE可减少运行时体积(约30-50%)。
- 通过
完整示例
bash
复制
# 非模块化应用打包(Windows)
jpackage --type exe \
--input target \
--main-jar myapp.jar \
--name MyApp \
--vendor "My Company" \
--app-version 1.0.0 \
--icon icon.ico \
--win-console \
--win-shortcut
如需更高级配置(如自定义签名、安装界面),可参考 WiX文档 或 JDK官方指南。