The jpackage Command

名称

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