名称
jpackage - 用于打包自包含Java应用程序的工具。
概要
jpackage
[选项]
- 选项
- 命令行选项,用空格分隔。请参阅 jpackage 选项。
描述
jpackage
工具将接受Java应用程序和Java运行时映像作为输入,并生成一个包含所有必要依赖项的Java应用程序映像。它将能够生成特定于平台的本机包,例如在Windows上为exe,在macOS上为dmg。每种格式必须在其运行的平台上构建,不支持跨平台。该工具将具有选项,允许以各种方式定制打包的应用程序。
jpackage 选项
通用选项:
-
@
文件名 -
从文件中读取选项。
此选项可以多次使用。
-
--type
或-t
类型 -
要创建的包的类型
有效值为: {"app-image", "exe", "msi", "rpm", "deb", "pkg", "dmg"}
如果未指定此选项,将创建特定于平台的默认类型。
-
--app-version
版本 -
应用程序和/或包的版本
-
--copyright
版权 -
应用程序的版权
-
--description
描述 -
应用程序的描述
-
--help
或-h
-
将包含当前平台的每个有效选项的列表和描述的用法文本打印到输出流,并退出。
-
--icon
路径 -
应用程序包的图标路径
(绝对路径或相对于当前目录)
-
--name
或-n
名称 -
应用程序和/或包的名称
-
--dest
或-d
目标 -
生成的输出文件放置的路径
(绝对路径或相对于当前目录)。
默认为当前工作目录。
-
--temp
目录 -
用于创建临时文件的新目录或空目录的路径
(绝对路径或相对于当前目录)
如果指定,任务完成后临时目录不会被删除,必须手动删除。
如果未指定,将创建临时目录,并在任务完成后将其删除。
-
--vendor
供应商 -
应用程序的供应商
-
--verbose
-
启用详细输出。
-
--version
-
将产品版本打印到输出流并退出。
用于创建运行时映像的选项:
-
--add-modules
模块名称 [,
模块名称...] -
要添加的模块的逗号(",")分隔列表
此模块列表与主模块(如果指定)将作为 --add-module 参数传递给 jlink。如果未指定,则仅使用主模块(如果指定了 --module),或使用默认模块集(如果指定了 --main-jar)。
此选项可以多次使用。
-
--module-path
或-p
模块路径 [,
模块路径...] -
以 File.pathSeparator 分隔的路径列表
每个路径都是模块目录或模块化jar的路径,绝对路径或相对于当前目录。
此选项可以多次使用。
-
--jlink-options
选项 -
要传递给 jlink 的以空格分隔的选项列表
如果未指定,默认为 "--strip-native-commands --strip-debug --no-man-pages --no-header-files"
此选项可以多次使用。
-
--runtime-image
目录 -
将被复制到应用程序映像中的预定义运行时映像的路径
(绝对路径或相对于当前目录)
如果未指定 --runtime-image,jpackage 将运行 jlink 使用 --jlink-options 指定的选项创建运行时映像。
用于创建应用程序映像的选项:
-
--input
或-i
目录 -
包含要打包文件的输入目录的路径
(绝对路径或相对于当前目录)
输入目录中的所有文件将打包到应用程序映像中。
- `--app-content 附加内容[,附加内容...]
-
要添加到应用程序有效负载的文件和/或目录的逗号分隔列表。
此选项可以多次使用。
用于创建应用程序启动器的选项:
-
--add-launcher
名称=路径 -
启动器的名称,以及包含键值对列表的属性文件的路径
(绝对路径或相对于当前目录)
可以使用键 "module"、"main-jar"、"main-class"、"description"、"arguments"、"java-options"、"app-version"、"icon"、"launcher-as-service"、"win-console"、"win-shortcut"、"win-menu"、"linux-app-category" 和 "linux-shortcut"。
这些选项将添加到或用于覆盖原始命令行选项,以构建额外的替代启动器。主应用程序启动器将从命令行选项构建。可以使用此选项构建多个额外的替代启动器,并且可以多次使用此选项以构建多个额外的启动器。
-
--arguments
参数 -
传递给启动器的主类的命令行参数(如果未给出命令行参数)
此选项可以多次使用。
-
--java-options
选项 -
传递给Java运行时的选项
此选项可以多次使用。
-
--main-class
类名 -
要执行的应用程序主类的限定名称
只有在指定了 --main-jar 时才能使用此选项。
-
--main-jar
主JAR -
应用程序的主JAR;包含主类的JAR(相对于输入路径指定的路径)
可以指定 --module 或 --main-jar 选项,但不能同时指定。
-
--module
或-m
模块名称[/主类] -
应用程序的主模块(以及可选的主类)
此模块必须位于模块路径上。
指定此选项时,主模块将链接到Java运行时映像中。可以指定 --module 或 --main-jar 选项,但不能同时指定。
用于创建应用程序启动器的特定于平台的选项:
Windows平台选项(仅在Windows上运行时可用):
-
--win-console
-
为应用程序创建控制台启动器,应指定需要控制台交互的应用程序
macOS平台选项(仅在macOS上运行时可用):
-
--mac-package-identifier
标识符 -
唯一标识macOS应用程序的标识符
默认为主类名。
只能使用字母数字(A-Z,a-z,0-9),连字符(-)和句点(.)字符。
-
--mac-package-name
名称 -
在菜单栏中显示的应用程序名称
这可以与应用程序名称不同。
此名称必须少于16个字符,并适合在菜单栏和应用程序信息窗口中显示。默认为应用程序名称。
-
--mac-package-signing-prefix
前缀 -
在签署应用程序包时,此值将添加到所有需要签名但没有现有包标识符的组件之前。
-
--mac-sign
-
请求对包或预定义应用程序映像进行签名。
-
--mac-signing-keychain
钥匙链名称 -
用于搜索签名标识的钥匙链的名称
如果未指定,将使用标准钥匙链。
-
--mac-signing-key-user-name
名称 -
Apple签名标识中的团队或用户名部分
-
--mac-app-store
-
指示 jpackage 输出适用于Mac App Store。
-
--mac-entitlements
路径 -
包含在签署包中的可执行文件和库时使用的授权的文件路径
-
--mac-app-category
类别 -
用于构造应用程序plist中的LSApplicationCategoryType的字符串
默认值为"utilities"。
用于创建应用程序包的选项:
-
--about-url
url -
应用程序主页的URL
-
--app-image
directory -
预定义应用程序图像的位置,用于构建可安装包(在所有平台上)或用于签名(在macOS上)
(绝对路径或相对于当前目录)
-
--file-associations
path -
包含键值对列表的属性文件的路径
(绝对路径或相对于当前目录)
可以使用键“extension”、“mime-type”、“icon”和“description”来描述关联。
此选项可以多次使用。
-
--install-dir
path -
应用程序安装目录的绝对路径(在macOS或Linux上),或安装目录的相对子路径,如“Program Files”或“AppData”(在Windows上)
-
--license-file
path -
许可文件的路径
(绝对路径或相对于当前目录)
-
--resource-dir
path -
用于覆盖jpackage资源的路径
(绝对路径或相对于当前目录)
可以通过向此目录添加替换资源来覆盖jpackage的图标、模板文件和其他资源。
-
--runtime-image
path -
要安装的预定义运行时映像的路径
(绝对路径或相对于当前目录)
在创建运行时安装程序时需要此选项。
-
--launcher-as-service
-
请求创建一个安装程序,将主应用程序启动器注册为后台服务类型应用程序。
创建应用程序包的平台相关选项:
Windows平台选项(仅在Windows上运行时可用):
-
--win-dir-chooser
-
添加对话框,以便用户选择安装产品的目录。
-
--win-help-url
url -
用户可以获取更多信息或技术支持的URL
-
--win-menu
-
请求为此应用程序添加开始菜单快捷方式
-
--win-menu-group
menu-group-name -
将此应用程序放置在的开始菜单组
-
--win-per-user-install
-
请求按用户安装
-
--win-shortcut
-
请求为此应用程序创建桌面快捷方式
-
--win-shortcut-prompt
-
添加对话框,以便用户选择是否由安装程序创建快捷方式
-
--win-update-url
url -
可用应用程序更新信息的URL
-
--win-upgrade-uuid
id -
与此软件包升级相关联的UUID
Linux平台选项(仅在Linux上运行时可用):
-
--linux-package-name
name -
Linux软件包的名称
默认为应用程序名称。
-
--linux-deb-maintainer
email-address -
.deb包的维护者
-
--linux-menu-group
menu-group-name -
将此应用程序放置在的菜单组
-
--linux-package-deps
-
应用程序所需的软件包或功能
-
--linux-rpm-license-type
type -
许可证的类型(RPM .spec文件的“License: value”)
-
--linux-app-release
release -
RPM <name>.spec文件的发布值或DEB控制文件的Debian修订值
-
--linux-app-category
category-value -
RPM /
.spec文件的组值或DEB控制文件的部分值 -
--linux-shortcut
-
为应用程序创建快捷方式
macOS平台选项(仅在macOS上运行时可用):
- '--mac-dmg-content additional-content[,additional-content...]
-
在dmg中包含所有引用的内容。
此选项可以多次使用。
jpackage示例
生成适合主机系统的应用程序包:
对于模块化应用程序:
jpackage -n name -p modulePath -m moduleName/className
对于非模块化应用程序:
jpackage -i inputDir -n name \
--main-class className --main-jar myJar.jar
从预构建的应用程序图像:
jpackage -n name --app-image appImageDir
生成应用程序图像:
对于模块化应用程序:
jpackage --type app-image -n name -p modulePath \
-m moduleName/className
对于非模块化应用程序:
jpackage --type app-image -i inputDir -n name \
--main-class className --main-jar myJar.jar
要向jlink提供自己的选项,请单独运行jlink:
jlink --output appRuntimeImage -p modulePath \
--add-modules moduleName \
--no-header-files [<additional jlink options>...]
jpackage --type app-image -n name \
-m moduleName/className --runtime-image appRuntimeImage
生成Java运行时包:
jpackage -n name --runtime-image <runtime-image>
签署预定义的应用程序图像(在macOS上):
jpackage --type app-image --app-image <app-image> \
--mac-sign [<additional signing options>...]
注意:在此模式下允许的唯一附加选项是:
一组额外的mac签名选项和--verbose
jpackage资源目录
通过向此目录添加替换资源,可以覆盖jpackage的图标、模板文件和其他资源。jpackage将在资源目录中按特定名称查找文件。
仅在Linux上运行时考虑的资源目录文件:
-
<launcher-name>.png
-
应用程序启动器图标
默认资源为JavaApp.png
-
<launcher-name>.desktop
-
与
xdg-desktop-menu
命令一起使用的桌面文件用于已注册文件关联的应用程序启动器和/或具有图标的应用程序启动器
默认资源为template.desktop
仅在构建Linux DEB/RPM安装程序时考虑的资源目录文件:
-
<package-name>-<launcher-name>.service
-
注册为后台服务类型应用程序的应用程序启动器的systemd单元文件
默认资源为unit-template.service
仅在构建Linux RPM安装程序时考虑的资源目录文件:
-
<package-name>.spec
-
RPM规范文件
默认资源为template.spec
仅在构建Linux DEB安装程序时考虑的资源目录文件:
-
control
-
控制文件
默认资源为template.control
-
copyright
-
版权文件
默认资源为template.copyright
-
preinstall
-
预安装shell脚本
默认资源为template.preinstall
-
prerm
-
预删除shell脚本
默认资源为template.prerm
-
postinstall
-
后安装shell脚本
默认资源为template.postinstall
-
postrm
-
后删除shell脚本
默认资源为template.postrm
仅在Windows上运行时考虑的资源目录文件:
-
<launcher-name>.ico
-
应用程序启动器图标
默认资源为JavaApp.ico
-
<launcher-name>.properties
-
应用程序启动器可执行文件的属性文件
默认资源为WinLauncher.template
仅在构建Windows MSI/EXE安装程序时考虑的资源目录文件:
-
<application-name>-post-image.wsf
-
用于构建应用程序镜像后运行的Windows脚本文件(WSF)
-
main.wxs
-
主WiX项目文件
默认资源为main.wxs
-
overrides.wxi
-
覆盖WiX项目文件
默认资源为overrides.wxi
-
service-installer.exe
-
服务安装程序可执行文件
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
-
<launcher-name>-service-install.wxi
-
服务安装程序WiX项目文件
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
默认资源为service-install.wxi
-
<launcher-name>-service-config.wxi
-
服务安装程序WiX项目文件
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
默认资源为service-config.wxi
-
InstallDirNotEmptyDlg.wxs
-
用于安装程序UI对话框检查安装目录不存在或为空的WiX项目文件
默认资源为InstallDirNotEmptyDlg.wxs
-
ShortcutPromptDlg.wxs
-
用于安装程序UI对话框配置快捷方式的WiX项目文件
默认资源为ShortcutPromptDlg.wxs
-
bundle.wxf
-
应用程序镜像组件层次结构的WiX项目文件
-
ui.wxf
-
用于安装程序UI的WiX项目文件
仅在构建Windows EXE安装程序时考虑的资源目录文件:
-
WinInstaller.properties
-
安装程序可执行文件的属性文件
默认资源为WinInstaller.template
-
<package-name>-post-msi.wsf
-
用于构建EXE安装程序的嵌入式MSI安装程序后运行的Windows脚本文件(WSF)
仅在macOS上运行时考虑的资源目录文件:
-
<launcher-name>.icns
-
应用程序启动器图标
默认资源为JavaApp.icns
-
Info.plist
-
应用程序属性列表文件
默认资源为Info-lite.plist.template
-
Runtime-Info.plist
-
Java运行时属性列表文件
默认资源为Runtime-Info.plist.template
-
<application-name>.entitlements
-
签名授权属性列表文件
默认资源为sandbox.plist
仅在构建macOS PKG/DMG安装程序时考虑的资源目录文件:
-
<package-name>-post-image.sh
-
用于构建应用程序镜像后运行的Shell脚本
仅在构建macOS PKG安装程序时考虑的资源目录文件:
-
uninstaller
-
卸载程序Shell脚本
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
默认资源为uninstall.command.template
-
preinstall
-
预安装Shell脚本
默认资源为preinstall.template
-
postinstall
-
后安装Shell脚本
默认资源为postinstall.template
-
services-preinstall
-
服务包的预安装Shell脚本
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
默认资源为services-preinstall.template
-
services-postinstall
-
服务包的后安装Shell脚本
如果某些应用程序启动器注册为后台服务类型应用程序,则会考虑
默认资源为services-postinstall.template
-
<package-name>-background.png
-
背景图片
默认资源为background_pkg.png
-
<package-name>-background-darkAqua.png
-
深色背景图片
默认资源为background_pkg.png
-
product-def.plist
-
包属性列表文件
默认资源为product-def.plist
-
<package-name>-<launcher-name>.plist
-
用于将应用程序启动器注册为后台服务类型应用程序的launchd属性列表文件
默认资源为launchd.plist.template
仅在构建macOS DMG安装程序时考虑的资源目录文件:
-
<package-name>-dmg-setup.scpt
-
设置AppleScript脚本
默认资源为DMGsetup.scpt
-
<package-name>-license.plist
-
许可属性列表文件
默认资源为lic_template.plist
-
<package-name>-background.tiff
-
背景图片
默认资源为background_dmg.tiff
-
<package-name>-volume.icns
-
卷图标
默认资源为JavaApp.icns