| .\" Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. |
| .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| .\" |
| .\" This code is free software; you can redistribute it and/or modify it |
| .\" under the terms of the GNU General Public License version 2 only, as |
| .\" published by the Free Software Foundation. |
| .\" |
| .\" This code is distributed in the hope that it will be useful, but WITHOUT |
| .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| .\" version 2 for more details (a copy is included in the LICENSE file that |
| .\" accompanied this code). |
| .\" |
| .\" You should have received a copy of the GNU General Public License version |
| .\" 2 along with this work; if not, write to the Free Software Foundation, |
| .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| .\" |
| .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| .\" or visit www.oracle.com if you need additional information or have any |
| .\" questions. |
| .\" |
| .\" Automatically generated by Pandoc 2.3.1 |
| .\" |
| .TH "JPACKAGE" "1" "2021" "JDK 17" "JDK Commands" |
| .hy |
| .SH NAME |
| .PP |
| jpackage \- tool for packaging self\-contained Java applications. |
| .SH SYNOPSIS |
| .PP |
| \f[CB]jpackage\f[R] [\f[I]options\f[R]] |
| .TP |
| .B \f[I]options\f[R] |
| Command\-line options separated by spaces. |
| See \f[B]jpackage Options\f[R]. |
| .RS |
| .RE |
| .SH DESCRIPTION |
| .PP |
| The \f[CB]jpackage\f[R] tool will take as input a Java application and a |
| Java run\-time image, and produce a Java application image that includes |
| all the necessary dependencies. |
| It will be able to produce a native package in a platform\-specific |
| format, such as an exe on Windows or a dmg on macOS. |
| Each format must be built on the platform it runs on, there is no |
| cross\-platform support. |
| The tool will have options that allow packaged applications to be |
| customized in various ways. |
| .SH JPACKAGE OPTIONS |
| .SS Generic Options: |
| .TP |
| .B \f[CB]\@\f[R]\f[I]filename\f[R] |
| Read options from a file. |
| .RS |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-type\f[R] or \f[CB]\-t\f[R] <type string> |
| The type of package to create |
| .RS |
| .PP |
| Valid values are: {"app\-image", "exe", "msi", "rpm", "deb", "pkg", |
| "dmg"} |
| .PP |
| If this option is not specified a platform dependent default type will |
| be created. |
| .RE |
| .TP |
| .B \f[CB]\-\-app\-version\f[R] <version> |
| Version of the application and/or package |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-copyright\f[R] <copyright string> |
| Copyright for the application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-description\f[R] <description string> |
| Description of the application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-help\f[R] or \f[CB]\-h\f[R] |
| Print the usage text with a list and description of each valid option |
| for the current platform to the output stream, and exit. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-icon\f[R] <icon file path> |
| Path of the icon of the application package (absolute path or relative |
| to the current directory) |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-name\f[R] or \f[CB]\-n\f[R] <name> |
| Name of the application and/or package |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-dest\f[R] or \f[CB]\-d\f[R] <output path> |
| Path where generated output file is placed |
| .RS |
| .PP |
| Defaults to the current working directory. |
| (absolute path or relative to the current directory). |
| .RE |
| .TP |
| .B \f[CB]\-\-temp\f[R] <directory path> |
| Path of a new or empty directory used to create temporary files |
| (absolute path or relative to the current directory) |
| .RS |
| .PP |
| If specified, the temp dir will not be removed upon the task completion |
| and must be removed manually. |
| .PP |
| If not specified, a temporary directory will be created and removed upon |
| the task completion. |
| .RE |
| .TP |
| .B \f[CB]\-\-vendor\f[R] <vendor string> |
| Vendor of the application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-verbose\f[R] |
| Enables verbose output. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-version\f[R] |
| Print the product version to the output stream and exit. |
| .RS |
| .RE |
| .SS Options for creating the runtime image: |
| .TP |
| .B \f[CB]\-\-add\-modules\f[R] <module name> [\f[CB],\f[R]<module name>...] |
| A comma (",") separated list of modules to add |
| .RS |
| .PP |
| This module list, along with the main module (if specified) will be |
| passed to jlink as the \-\-add\-module argument. |
| If not specified, either just the main module (if \-\-module is |
| specified), or the default set of modules (if \-\-main\-jar is |
| specified) are used. |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-module\-path\f[R] or \f[CB]\-p\f[R] <module path>... |
| A File.pathSeparator separated list of paths |
| .RS |
| .PP |
| Each path is either a directory of modules or the path to a modular jar, |
| and is absolute or relative to the current directory. |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-jlink\-options\f[R] <jlink options> |
| A space separated list of options to pass to jlink |
| .RS |
| .PP |
| If not specified, defaults to "\-\-strip\-native\-commands |
| \-\-strip\-debug \-\-no\-man\-pages \-\-no\-header\-files" |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-runtime\-image\f[R] <directory path> |
| Path of the predefined runtime image that will be copied into the |
| application image (absolute path or relative to the current directory) |
| .RS |
| .PP |
| If \-\-runtime\-image is not specified, jpackage will run jlink to |
| create the runtime image using options specified by \-\-jlink\-options. |
| .RE |
| .SS Options for creating the application image: |
| .TP |
| .B \f[CB]\-\-input\f[R] or \f[CB]\-i\f[R] <input path> |
| Path of the input directory that contains the files to be packaged |
| (absolute path or relative to the current directory) |
| .RS |
| .PP |
| All files in the input directory will be packaged into the application |
| image. |
| .RE |
| .SS Options for creating the application launcher(s): |
| .TP |
| .B \f[CB]\-\-add\-launcher\f[R] <launcher name>=<file path> |
| Name of launcher, and a path to a Properties file that contains a list |
| of key, value pairs (absolute path or relative to the current directory) |
| .RS |
| .PP |
| The keys "module", "main\-jar", "main\-class", "arguments", |
| "java\-options", "app\-version", "icon", "linux\-app\-category", |
| "linux\-app\-release", and "win\-console" can be used. |
| .PP |
| These options are added to, or used to overwrite, the original command |
| line options to build an additional alternative launcher. |
| The main application launcher will be built from the command line |
| options. |
| Additional alternative launchers can be built using this option, and |
| this option can be used multiple times to build multiple additional |
| launchers. |
| .RE |
| .TP |
| .B \f[CB]\-\-arguments\f[R] <main class arguments> |
| Command line arguments to pass to the main class if no command line |
| arguments are given to the launcher |
| .RS |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-java\-options\f[R] <java options> |
| Options to pass to the Java runtime |
| .RS |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-main\-class\f[R] <class name> |
| Qualified name of the application main class to execute |
| .RS |
| .PP |
| This option can only be used if \-\-main\-jar is specified. |
| .RE |
| .TP |
| .B \f[CB]\-\-main\-jar\f[R] <main jar file> |
| The main JAR of the application; containing the main class (specified as |
| a path relative to the input path) |
| .RS |
| .PP |
| Either \-\-module or \-\-main\-jar option can be specified but not both. |
| .RE |
| .TP |
| .B \f[CB]\-\-module\f[R] or \f[CB]\-m\f[R] <module name>/<main class>] |
| The main module (and optionally main class) of the application |
| .RS |
| .PP |
| This module must be located on the module path. |
| .PP |
| When this option is specified, the main module will be linked in the |
| Java runtime image. |
| Either \-\-module or \-\-main\-jar option can be specified but not both. |
| .RE |
| .SS Platform dependent option for creating the application launcher: |
| .SS Windows platform options (available only when running on Windows): |
| .TP |
| .B \f[CB]\-\-win\-console\f[R] |
| Creates a console launcher for the application, should be specified for |
| application which requires console interactions |
| .RS |
| .RE |
| .SS macOS platform options (available only when running on macOS): |
| .TP |
| .B \f[CB]\-\-mac\-package\-identifier\f[R] <ID string> |
| An identifier that uniquely identifies the application for macOS |
| .RS |
| .PP |
| Defaults to the the main class name. |
| .PP |
| May only use alphanumeric (A\-Z,a\-z,0\-9), hyphen (\-), and period (.) |
| characters. |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-package\-name\f[R] <name string> |
| Name of the application as it appears in the Menu Bar |
| .RS |
| .PP |
| This can be different from the application name. |
| .PP |
| This name must be less than 16 characters long and be suitable for |
| displaying in the menu bar and the application Info window. |
| Defaults to the application name. |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-package\-signing\-prefix\f[R] <prefix string> |
| When signing the application package, this value is prefixed to all |
| components that need to be signed that don\[aq]t have an existing |
| package identifier. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-sign\f[R] |
| Request that the bundle be signed. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-signing\-keychain\f[R] <keychain name> |
| Name of the keychain to search for the signing identity |
| .RS |
| .PP |
| If not specified, the standard keychains are used. |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-signing\-key\-user\-name\f[R] <team name> |
| Team or user name portion in Apple signing identities |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-app\-store\f[R] |
| Indicates that the jpackage output is intended for the Mac App Store. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-entitlements\f[R] <file path> |
| Path to file containing entitlements to use when signing executables and |
| libraries in the bundle |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-mac\-app\-category\f[R] <category string> |
| String used to construct LSApplicationCategoryType in application plist |
| .RS |
| .PP |
| The default value is "utilities". |
| .RE |
| .SS Options for creating the application package: |
| .TP |
| .B \f[CB]\-\-about\-url\f[R] <url> |
| URL of the application\[aq]s home page |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-app\-image\f[R] <directory path> |
| Location of the predefined application image that is used to build an |
| installable package |
| .RS |
| .PP |
| (absolute path or relative to the current directory). |
| .PP |
| See create\-app\-image mode options to create the application image. |
| .RE |
| .TP |
| .B \f[CB]\-\-file\-associations\f[R] <file path> |
| Path to a Properties file that contains list of key, value pairs |
| (absolute path or relative to the current directory) |
| .RS |
| .PP |
| The keys "extension", "mime\-type", "icon", and "description" can be |
| used to describe the association. |
| .PP |
| This option can be used multiple times. |
| .RE |
| .TP |
| .B \f[CB]\-\-install\-dir\f[R] <directory path> |
| Absolute path of the installation directory of the application (on macos |
| or linux), or relative sub\-path of the installation directory such as |
| "Program Files" or "AppData" (on Windows) |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-license\-file\f[R] <file path> |
| Path to the license file (absolute path or relative to the current |
| directory) |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-resource\-dir\f[R] <directory path> |
| Path to override jpackage resources (absolute path or relative to the |
| current directory) |
| .RS |
| .PP |
| Icons, template files, and other resources of jpackage can be |
| over\-ridden by adding replacement resources to this directory. |
| .RE |
| .TP |
| .B \f[CB]\-\-runtime\-image\f[R] <directory path> |
| Path of the predefined runtime image to install (absolute path or |
| relative to the current directory) |
| .RS |
| .PP |
| Option is required when creating a runtime installer. |
| .RE |
| .SS Platform dependent options for creating the application package: |
| .SS Windows platform options (available only when running on Windows): |
| .TP |
| .B \f[CB]\-\-win\-dir\-chooser\f[R] |
| Adds a dialog to enable the user to choose a directory in which the |
| product is installed. |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-help\-url\f[R] <url> |
| URL where user can obtain further information or technical support |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-menu\f[R] |
| Request to add a Start Menu shortcut for this application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-menu\-group\f[R] <menu group name> |
| Start Menu group this application is placed in |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-per\-user\-install\f[R] |
| Request to perform an install on a per\-user basis |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-shortcut\f[R] |
| Request to create a desktop shortcut for this application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-shortcut\-prompt\f[R] |
| Adds a dialog to enable the user to choose if shortcuts will be created |
| by installer |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-update\-url\f[R] <url> |
| URL of available application update information |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-win\-upgrade\-uuid\f[R] <id string> |
| UUID associated with upgrades for this package |
| .RS |
| .RE |
| .SS Linux platform options (available only when running on Linux): |
| .TP |
| .B \f[CB]\-\-linux\-package\-name\f[R] <package name> |
| Name for Linux package |
| .RS |
| .PP |
| Defaults to the application name. |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-deb\-maintainer\f[R] <email address> |
| Maintainer for .deb bundle |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-menu\-group\f[R] <menu\-group\-name> |
| Menu group this application is placed in |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-package\-deps\f[R] |
| Required packages or capabilities for the application |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-rpm\-license\-type\f[R] <type string> |
| Type of the license ("License: <value>" of the RPM .spec) |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-app\-release\f[R] <release string> |
| Release value of the RPM <name>.spec file or Debian revision value of |
| the DEB control file |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-app\-category\f[R] <category string> |
| Group value of the RPM <name>.spec file or Section value of DEB control |
| file |
| .RS |
| .RE |
| .TP |
| .B \f[CB]\-\-linux\-shortcut\f[R] |
| Creates a shortcut for the application. |
| .RS |
| .RE |
| .SH JPACKAGE EXAMPLES |
| .IP |
| .nf |
| \f[CB] |
| Generate\ an\ application\ package\ suitable\ for\ the\ host\ system: |
| \f[R] |
| .fi |
| .IP |
| .nf |
| \f[CB] |
| For\ a\ modular\ application: |
| \ \ \ \ jpackage\ \-n\ name\ \-p\ modulePath\ \-m\ moduleName/className |
| For\ a\ non\-modular\ application: |
| \ \ \ \ jpackage\ \-i\ inputDir\ \-n\ name\ \\ |
| \ \ \ \ \ \ \ \ \-\-main\-class\ className\ \-\-main\-jar\ myJar.jar |
| From\ a\ pre\-built\ application\ image: |
| \ \ \ \ jpackage\ \-n\ name\ \-\-app\-image\ appImageDir |
| \f[R] |
| .fi |
| .IP |
| .nf |
| \f[CB] |
| Generate\ an\ application\ image: |
| \f[R] |
| .fi |
| .IP |
| .nf |
| \f[CB] |
| For\ a\ modular\ application: |
| \ \ \ \ jpackage\ \-\-type\ app\-image\ \-n\ name\ \-p\ modulePath\ \\ |
| \ \ \ \ \ \ \ \ \-m\ moduleName/className |
| For\ a\ non\-modular\ application: |
| \ \ \ \ jpackage\ \-\-type\ app\-image\ \-i\ inputDir\ \-n\ name\ \\ |
| \ \ \ \ \ \ \ \ \-\-main\-class\ className\ \-\-main\-jar\ myJar.jar |
| To\ provide\ your\ own\ options\ to\ jlink,\ run\ jlink\ separately: |
| \ \ \ \ 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 |
| \f[R] |
| .fi |
| .IP |
| .nf |
| \f[CB] |
| Generate\ a\ Java\ runtime\ package: |
| \f[R] |
| .fi |
| .IP |
| .nf |
| \f[CB] |
| jpackage\ \-n\ name\ \-\-runtime\-image\ <runtime\-image> |
| \f[R] |
| .fi |