--- old/closed/make/data/docs-resources/specs/man/index.html 2019-05-16 16:04:45.234999300 -0400 +++ new/closed/make/data/docs-resources/specs/man/index.html 2019-05-16 16:04:43.347375100 -0400 @@ -29,6 +29,7 @@
  • jlink - assemble and optimize a set of modules and their dependencies into a custom runtime image
  • jmap - print details of a specified process
  • jmod - create JMOD files and list the content of existing JMOD files
  • +
  • jpackage - package a self-contained Java application
  • jps - list the instrumented JVMs on the target system
  • jrunscript - run a command-line script shell that supports interactive and batch modes
  • jshell - interactively evaluate declarations, statements, and expressions of the Java programming language in a read-eval-print loop (REPL)
  • --- /dev/null 2019-05-16 16:04:56.000000000 -0400 +++ new/closed/src/jdk.jpackage/share/man/jpackage.md 2019-05-16 16:04:54.175914100 -0400 @@ -0,0 +1,338 @@ +--- +# Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. +# + +title: 'JPACKAGE(1) JDK @@VERSION_SHORT@@ | JDK Commands' +date: 2019 +lang: en +--- + +## Name + +jpackage - tool for packaging self-contained Java applications. + +## Synopsis + +`jpackage` *mode* \[*options*\] + +*mode* +: where mode is one of: +: create-app-image + Generates a platform-specific application image. +: create-installer + Generates a platform-specific installer for the application. + + +*options* +: Command-line options separated by spaces. See [jpackage Options]. + +## Description + +The `jpackage` 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 also be able to produce a native package in a platform-specific format, such as an exe on Windows or a dmg on macOS. The tool will have options that allow packaged applications to be customized in various ways. + + +## jpackage Options + +### Generic Options: + +`@`*filename* +: Read options and/or mode from a file + This option can be used multiple times. + +`--app-version` *version* +: Version of the application and/or installer + +`--copyright` *copyright string* +: Copyright for the application + +`--description` *description string* +: Description of the application + +`--help` or `-h` +: Print the usage text with a list and description of each valid + option for the current platform to the output stream, and exit + +`--name` or `-n` *name* +: Name of the application and/or installer + +`--output` or `-o` *output path* +: Path where generated output file is placed + (absolute path or relative to the current directory) + +`--temp-root` *file path* +: Path of a new or empty directory used to create temporary files + (absolute path or relative to the current directory). + If specified, the temp-root will not be removed upon the task + completion and must be removed manually. + If not specified, a temporary directory will be created and + removed upon the task completion. + +`--vendor` *vendor string* +: Vendor of the application + +`--verbose` +: Enables verbose output + +`--version` +: Print the product version to the output stream and exit + +### Options for creating the runtime image: + + +`--add-modules` *module name* \[`,`*module name*...\] +: A comma (",") separated list of modules to add. + 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. + This option can be used multiple times. + +`--module-path` or `-p` *module path*... +: A File.pathSeparator separated list of paths + Each path is either a directory of modules or the path to a + modular jar. + (each path is absolute or relative to the current directory) + This option can be used multiple times. + +`--runtime-image` *file path* +: Path of the predefined runtime image that will be copied into + the application image + (absolute path or relative to the current directory). + If --runtime-image is not specified, jpackage will run jlink to + create the runtime image using options: + --strip-debug, --no-header-files, --no-man-pages, and + --strip-native-commands. --bind-services will also be added if + --add-modules is not specified. + +### Options for creating the application image: + +`--icon` *icon file path* +: Path of the icon of the application bundle + (absolute path or relative to the current directory) + +`--input` or `-i` *input path* +: Path of the input directory that contains the files to be packaged + (absolute path or relative to the current directory). + All files in the input directory will be packaged into the + application image. + + +### Options for creating the application launcher(s): + + +`--add-launcher` *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) + The keys "module", "add-modules", "main-jar", "main-class", + "arguments", "java-options", "app-version", "icon", and + "win-console" can be used. + 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. + +`--arguments` *main class arguments* +: Command line arguments to pass to the main class if no command + line arguments are given to the launcher + This option can be used multiple times. + +`--java-options` *java options* +: Options to pass to the Java runtime + This option can be used multiple times. + +`--main-class` *class name* +: Qualified name of the application main class to execute + This option can only be used if --main-jar is specified. + +`--main-jar` *main jar file* +: The main JAR of the application; containing the main class + (specified as a path relative to the input path). + Either --module or --main-jar option can be specified but not + both. + +`--module` or `-m` *module name*/*main class*] +: The main module (and optionally main class) of the application + This module must be located on the module path. + 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. + + +### Platform dependent option for creating the application launcher: + + +#### Windows platform options: + +`--win-console` +: Creates a console launcher for the application, should be + specified for application which requires console interactions + +#### MacOS platform options: + +`--mac-bundle-identifier` *ID string* +: An identifier that uniquely identifies the application for MacOSX. + Defaults to the value of --identifier option. + May only use alphanumeric (A-Z,a-z,0-9), hyphen (-), + and period (.) characters. + +`--mac-bundle-name` *name string* +: Name of the application as it appears in the Menu Bar + This can be different from the application name. + 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. + +`--mac-bundle-signing-prefix` *prefix string* +: When signing the application bundle, this value is prefixed to all + components that need to be signed that don't have + an existing bundle identifier. + +`--mac-sign` +: Request that the bundle be signed + +`--mac-signing-keychain` *file path* +: Path of the keychain to search for the signing identity + (absolute path or relative to the current directory). + If not specified, the standard keychains are used. + +`--mac-signing-key-user-name` *team name* +: Team name portion in Apple signing identities' names + For example "Developer ID Application: " + +: User name portion of the typical + "Mac Developer ID Application: " signing key + + +### Options for creating the application installer(s): + + +`--app-image` *file path* +: Location of the predefined application image that is used + to build an installable package + (absolute path or relative to the current directory). + See create-app-image mode options to create the application image. + +`--file-associations` *file path* +: Path to a Properties file that contains list of key, value pairs + (absolute path or relative to the current directory). + The keys "extension", "mime-type", "icon", and "description" + can be used to describe the association. + This option can be used multiple times. + +`--identifier` *id string* +: An identifier that uniquely identifies the application. + Defaults to the main class name. + The value should be a valid DNS name. + +`--install-dir` *file path* +: Absolute path of the installation directory of the application on OS X + or Linux. Relative sub-path of the installation location of the application + such as "Program Files" or "AppData" on Windows. + +`--installer-type` *type* +: The type of the installer to create. + Valid values are: {"exe", "msi", "rpm", "deb", "pkg", "dmg"} + If this option is not specified (in create-installer mode) all + supported types of installable packages for the current + platform will be created. + +`--license-file` *file path* +: Path to the license file + (absolute path or relative to the current directory) + +`--resource-dir` *path* +: Path to override jpackage resources. + Icons, template files, and other resources of jpackage can be + over-ridden by adding replacement resources to this directory. + (absolute path or relative to the current directory) + +`--runtime-image` *file-path* +: Path of the predefined runtime image to install + (absolute path or relative to the current directory). + Option is required when creating a runtime installer. + + +### Platform dependent options for creating the application installer(s): + + +#### Windows platform options: + +`--win-dir-chooser` +: Adds a dialog to enable the user to choose a directory in which + the product is installed + +`--win-menu` +: Adds the application to the system menu + +`--win-menu-group` *menu group name* +: Start Menu group this application is placed in + +`--win-per-user-install` +: Request to perform an install on a per-user basis + +`--win-registry-name` *registry name* +: Name of the application for registry references. + The default is the Application Name with only + alphanumerics, dots, and dashes (no whitespace) + +`--win-shortcut` +: Creates a desktop shortcut for the application + +`--win-upgrade-uuid` *id string* +: UUID associated with upgrades for this package + +#### Linux platform options: + +`--linux-bundle-name` *bundle name* +: Name for Linux bundle, defaults to the application name + +`--linux-deb-maintainer` *email address* +: Maintainer for .deb bundle + +`--linux-menu-group` *menu-group-name* +: Menu group this application is placed in + +`--linux-package-deps` +: Required packages or capabilities for the application + +`--linux-rpm-license-type` *type string* +: Type of the license ("License: " of the RPM .spec) + + +## jpackage Examples + +Generate a non-modular application image: +``` + jpackage create-app-image -o outputdir -i inputdir -n name \ + --main-class className --main-jar MyJar.jar +``` +Generate a modular application image: +``` + jpackage create-app-image -o outputdir -n name \ + -p modulePath -m moduleName/className + To provide your own options to jlink, run jlink separately: + jlink --output appRuntimeImage -p ModulePath -m moduleName \ + --no-header-files [...] + jpackage create-app-image -o outputdir -n name\ + -m moduleName/className --runtime-image appRuntimeIMage +``` +Generate an application installer: +``` + jpackage create-installer -o outputdir -n name \ + -p modulePath -m moduleName/className + jpackage create-installer -i inputdir -o outputdir -n name \ + --main-class package.ClassName --main-jar MyJar.jar + jpackage create-installer -o outputdir -n \ + --app-image [--installer-type ] +``` +Generate a Java runtime installer: +``` + jpackage create-installer -o outputdir -n name \ + --runtime-image +``` + +