Javafx Self Contained Application Packaging For Mac
You use the javapackager
command to perform tasks related to packaging Java and JavaFX applications.
Synopsis
command
The task that you want to perform. See Commands for the javapackager Command.
Create a tool for packaging self-contained Java applications. Create a simple packaging tool, based on the JavaFX javapackager tool, that: Supports native packaging formats to give end users a natural installation experience. These formats include msi and exe on Windows, pkg and dmg on macOS, and deb and rpm on Linux. The application itself is entirely self-contained, has a JavaFX user interface and runs on Mac, Linux and Windows. When someone is preparing a draw, Santulator offers the possibility to save the.
options
One or more options for the command, separated by spaces. See Options for the createbss Command, Options for the createjar Command, Options for the deploy Command, Options for the makeall Command, and Options for the signjar Command.
Note:
The javapackager
command isn’t available on Oracle Solaris.
Description
The Java Packager tool compiles, packages, and prepares Java and JavaFX applications for distribution. The javapackager
command is the command-line version. For available Ant tasks, see JavaFX Ant Tasks in Java Platform, Standard Edition Deployment Guide.
For self-contained applications, the Java Packager for JDK 9 packages applications with a JDK 9 runtime image generated by the jlink
tool. To package a JDK 8 or JDK 7 JRE with your application, use the JDK 8 Java Packager.
Commands for the javapackager Command
You can run the following commands from the command line, followed by the options for the command.
-createbss
Converts CSS files into binary form. See Options for the createbss Command for the options used with this command.
-createjar
Produces a JAR according to other parameters. See Options for the createjar Command for the options used with this command.
-deploy
Assembles the application package for distribution. Modular and nonmodular applications are supported. By default, the deploy task generates the base application package. It can also generate a self-contained application package, if requested. See Options for the deploy Command for the options used with this command.
The bundle for a self-contained application includes a custom runtime created by calling jlink
. The Java Packager for JDK 9 packages applications with a JDK 9 runtime image. To package a JDK 8 or JDK 7 JRE with your application, use the JDK 8 Java Packager.
-makeall
Note:
The-makeall
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release.Performs compilation, createjar
, and deploy
steps as one call, with most arguments predefined, and attempts to generate all applicable self-contained application packages. The source files must be located in a folder called src
, and the resulting files (JAR, JNLP, HTML, and self-contained application packages) are put in a folder called dist
. This command can be configured only in a minimal way and is as automated as possible. See Options for the makeall Command for the options used with this command.
-signjar
Note:
The-signjar
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release. It also doesn’t work with multirelease JAR file. Instead, use the jarsigner tool to sign the JAR file.Signs JAR files with a provided certificate. See Options for the signjar Command for the options used with this command.
Options for the createbss Command
-outdir dir
Name of the directory that receives the generated output files.
-srcdir dir
Base directory of the files to pack.
-srcfiles files
List of files in srcdir
. If omitted, all files in srcdir
(which is a mandatory argument in this case) will be used.
Options for the createjar Command
-appclass app-class
Qualified name of the application class to be executed.
-argument arg
An unnamed argument to be inserted into the JNLP file as an <fx:argument>
element.
-classpath files
List of dependent JAR file names.
-manifestAttrs manifest-attributes
List of names and values for additional manifest attributes. Syntax:
-nocss2bin
The packager doesn’t convert CSS files to binary form before copying to JAR file.
-noembedlauncher
If present, the packager will not add the JavaFX launcher classes to the jarfile.
-outdir dir
Name of the directory that receives the generated output files.
-outfile filename
Name (without the extension) of the file that’s generated.
-paramfile file
Properties file with named parameters and their default values to pass to the application.
-preloader preloader-class
Qualified name of the JavaFX preloader class to be executed. Use this option only for JavaFX applications. Don’t use for Java applications, including headless applications.
-runtimeversion version
Specifies the version of the required JavaFX Runtime.
-srcdir dir
Base directory of the files to pack.
-srcfiles files
List of files in srcdir
. If omitted, all files in srcdir
(which is a mandatory argument in this case) will be packed.
Options for the deploy Command
--add-modules modulename[,modulename..]
Specifies the root modules to resolve in addition to the initial module.
-allpermissions
If present, the application requires all security permissions in the JNLP file.
-appclass app-class
Qualified name of the application class to be executed.
-argument arg
An unnamed argument to be inserted into an <fx:argument>
element in the JNLP file.
-Bbundler-argument=value
Provides information to the bundler that’s used to package a self-contained application. See Arguments for Self-Contained Application Bundles for information about the arguments for each bundler.
-callbacks callback-methods
Specifies one or more user callback methods in generated HTML. The format is the following:
-description description
Description of the application.
-embedjnlp
If present, the JNLP file embedded in the HTML document.
-embedCertificates
If present, the certificates will be embedded in the jnlp file.
-height height
Height of the application.
-htmlparamfile file
Properties file with parameters for the resulting application when it is run in the browser.
-isExtension
If present, the srcfiles
as extensions.
--limit-modules modulename[,modulename..]
Limits the universe of observable modules.
-m modulename [/mainclass]
or --module modulename [/mainclass]
Specifies the initial module to resolve, and the name of the main class to execute if not specified by the module.
-p module path
or --module-path module path
A : separated list of directories, each directory is a directory of modules.
-name name
Name of the application.
-native type
Generate the files needed for a Java Web Start application when type
is set to jnlp
. Otherwise, generate self-contained application bundles, if possible. Use the -B
option to provide arguments to the bundlers being used. If type
is specified, then only a bundle of this type is created. If no type is specified, then all
is used.
The following values are valid for type:
jnlp
: Generates the.jnlp
and.html
files for a Java Web Start application.all
: Runs all of the installers for the platform on which it’s running, and creates a disk image for the application. This value is used iftype
isn’t specified.installer
: Runs all of the installers for the platform on which it’s running.image
: Creates a disk image for the application.Linux and Windows: The image is the directory that gets installed.
macOS: The image is the
.app
file.exe
: Generates a Windows.exe
package.msi
: Generates a Windows Installer package.dmg
: Generates a DMG file for macOS.pkg
: Generates a.pkg
package for macOS.mac.appStore
: Generates a package for the Mac App Store.rpm
: Generates an RPM package for Linux.deb
: Generates a Debian package for Linux.
-nosign
Linux and macOS: If present, the bundle generated for self-contained applications isn’t signed by the bundler. The default for bundlers that support signing is to sign the bundle if signing keys are properly configured. This attribute is ignored by bundlers that don’t support signing.
-outdir dir
Name of the directory that receives the generated output files.
-outfile filename
Name (without the extension) of the file that is generated.
-paramfile file
Properties file with named parameters and their default values to pass to the application.
-preloader preloader-class
Qualified name of the JavaFX preloader class to be executed. Use this option only for JavaFX applications. Don’t use for Java applications, including headless applications.
-srcdir dir
Base directory of the files to pack.
-srcfiles files
List of files in srcdir
. If omitted, all files in srcdir
(which is a mandatory argument in this case) will be used.
--strip-native-commands [true false]
Remove command-line tools such as java.exe
from the Java runtime that’s generated for packaging with self-contained applications. The default is true
. To keep the tools in the runtime, specify false
.
-templateId
Application ID of the application for template processing.
-templateInFilename
Name of the HTML template file. Placeholders are in the following form:
APPID
is the identifier of an application and XXXX
is one of following:
DT.SCRIPT.URL
Location of
dtjava.js
in the Deployment Toolkit. By default, the location ishttp://java.com/js/dtjava.js
.DT.SCRIPT.CODE
Script element to include
dtjava.js
of the Deployment Toolkit.DT.EMBED.CODE.DYNAMIC
Code to embed the application into a given placeholder. It is expected that the code is wrapped in the
function()
method.DT.EMBED.CODE.ONLOAD
All of the code needed to embed the application into a web page using the
onload
hook (except inclusion ofdtjava.js
).DT.LAUNCH.CODE
Code needed to launch the application. It’s expected that the code is wrapped in the
function()
method.
-templateOutFilename
Name of the HTML file generated from the template.
-title title
Title of the application.
-updatemode update-mode
Sets the update mode for the JNLP file.
-vendor vendor
Vendor of the application.
-width width
Width of the application.
Options for the makeall Command
Note:
The-makeall
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release.-appclass app-class
Qualified name of the application class to be executed.
-classpath files
List of dependent JAR file names.
-height height
Height of the application.
-name name
Name of the application.
-preloader preloader-class
Qualified name of the JavaFX preloader class to be executed. Use this option only for JavaFX applications. Don’t use for Java applications, including headless applications.
-v
Enables verbose output.
-width width
Width of the application.
Options for the signjar Command
Note:
The-signjar
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release. It also doesn’t work with multirelease JAR files. Use the jarsigner tool to sign the JAR file.-alias key-alias
Alias for the key.
-keyPass password
Password for recovering the key.
-keyStore file
Keystore file name.
-outdir dir
Name of the directory that receives the generated output files.
-storePass password
Password to check the integrity of the keystore or unlock the keystore.
-storeType type
Keystore type. The default value is jks
.
-srcdir dir
Base directory of the files to pack.
-srcfiles files
List of files in srcdir
. If omitted, all files in srcdir
(which is a mandatory argument in this case) will be packed.
Arguments for Self-Contained Application Bundles
The -Bbundler-argument=value
option for the -deploy
command is used when generating self-contained applications. This option enables you to set an argument for the bundler that’s used to create self-contained applications. To set more than one argument, pass an instance of this option for each argument. Each type of bundler has its own set of arguments.
The following sections describe the valid arguments for the available bundlers:
General Bundler Arguments
General bundler arguments are valid for all bundlers.
appVersion=version
Version of the application package. Some bundlers restrict the format of the version string.
arguments=option=value
Arguments to pass to the application when it is started. Enclose the argument list in quotes. To pass multiple options, separate the option-value pairs with spaces, for example:
classPath=path
Class path relative to the assembled application directory. The path is typically extracted from the JAR file manifest, and doesn’t need to be set if you’re using the other javapackager
commands.
dropinResourcesRoot=directory
Directory in which to look for bundler-specific drop-in resources. For example, on macOS, to look in the current directory for the Info.plist
file, use the following:
The file is then found in the current directory: package/macosx/Info.plist
.
icon=path
Location of the default icon to be used for application launchers and other assists.
Linux: The format must be .png
.
macOS: The format must be .icns
.
Windows: The format must be .ico
.
identifier=value
Default value that is used for other platform-specific values such as mac.CFBundleIdentifier
. Reverse DNS order is recommended, for example, com.example.application.my-application
.
jvmOptions=option
Option to be passed to the JVM when the application is run. Any option that is valid for the java
command can be used. To pass more than one option, use multiple instances of the -B
option, as shown in the following example:
jvmProperties=property=value
Java system property to be passed to the VM when the application is run. Any property that’s valid for the -D
option of the java
command can be used. Specify both the property name and the value for the property. To pass more than one property, use multiple instances of the -B
option, as shown in the following example:
mainJar=filename
Name of the JAR file that contains the main class for the application. The file name is typically extracted from the JAR file manifest, and doesn’t need to be set if you’re using the other javapackager
commands.
preferencesID=node
Preferences node to examine to check for JVM options that the user can override. The node specified is passed to the application at runtime as the option -Dapp.preferences.id
. This argument is used with the userJVMOptions
argument.
runtime=path
Location of the JRE or JDK to use with a Java Web Start application, valid only when the -native
option is set to jnlp
.
Best 27 monitor for macbook pro. The Dell U3818DW is the best monitor for MacBook Pro that we've tested so far. It has some great features that make it very easy to get the most out of your Mac, whether it's a MacBook Pro, MacBook, or Mac Mini. It has a USB-C port, which supports power delivery of up to 95W. Best Monitors for MacBook Air in 2020. Best Overall: LG 27UK850-W. Best Value: HP Envy 27. Best Premium: LG UltraFine 5K 27MD5KL. Best Portable: AOC I1601FWUX. Best Curved: LG 38WK95C-W. Best Gaming: BenQ EW3270U. Best Mac monitors 2020. HP Pavilion 27 Quantum Dot Display: Best for home or small office. Acer H277HK: Best for 4K on a budget. BenQ DesignVue PD2720U: Best mid-range option for graphics & design. Philips Brilliance 329P9H: Large-screen luxury. AOC 22B22H: Best bargain option. Best 4K Monitors for Mac in 2019 Our pick Dell U2718Q. Dell's tried and tested U2718Q is a feature-laden monitor. HDR10 support LG 27UK850-W. One of LG's latest monitors, the 4K 27UK850-W sports USB-C. USB-C connection HP Z27. HP's new Z27 4K monitor may just take over the top spot after more.
userJvmOptions=option=value
JVM options that users can override. Any option that’s valid for the java
command can be used. Specify both the option name and the value for the option. To pass more than one option, use multiple instances of the -B
option, as shown in the following example:
macOS Application Bundler Arguments
mac.category=category
Category for the application. The category must be in the list of categories found on the Apple Developer website.
mac.CFBundleIdentifier=value
Value stored in the info plist for CFBundleIdentifier
. This value must be globally unique and contain only letters, numbers, dots, and dashes. Reverse DNS order is recommended, for example, com.example.application.my-application
.
mac.CFBundleName=name
Name of the application as it appears on the macOS menu bar. A name of fewer than 16 characters is recommended. The default is the name
attribute.
mac.CFBundleVersion=value
Version number for the application, used internally. The value must be at least one integer and no more than three integers separated by periods (.) for example, 1.3 or 2.0.1. The value can be different than the value for the appVersion
argument. If the appVersion
argument is specified with a valid value and the mac.CFBundleVersion
argument isn’t specified, then the appVersion
value is used. If neither argument is specified, then 100
is used as the version number.
mac.signing-key-developer-id-app=key
Name of the signing key used for Developer ID or Gatekeeper signing. If you imported a standard key from the Apple Developer Website, then that key is used by default. If no key can be identified, then the application isn’t signed.
mac.bundle-id-signing-prefix=prefix
Prefix that is applied to the signed binary when binaries that lack plists or existing signatures are found inside the bundles.
macOS DMG (Disk Image) Bundler Arguments
The macOS DMG installer shows the license file specified by licenseFile
, if provided, before allowing the disk image to be mounted.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
systemWide=boolean
Flag that indicates which drag-to-install target to use. Set to true
to show the Applications folder. Set to false
to show the Desktop folder. The default is true
.
mac.CFBundleVersion=value
Version number for the application, used internally. The value must be at least one integer and no more than three integers separated by periods (.) for example, 1.3 or 2.0.1. The value can be different than the value for the appVersion
argument. If the appVersion
argument is specified with a valid value and the mac.CFBundleVersion
argument isn’t specified, then the appVersion
value is used. If neither argument is specified, then 100
is used as the version number.
mac.dmg.simple=boolean
Flag that indicates if DMG customization steps that depend on executing AppleScript code are skipped. Set to true
to skip the steps. When set to true
, the disk window doesn’t have a background image, and the icons aren’t moved into place. If the systemWide
argument is also set to true
, then a symbolic link to the root Applications folder is added to the DMG file. If the systemWide
argument is set to false
, then only the application is added to the DMG file, no link to the desktop is added.
macOS PKG Bundler Arguments
The macOS PKG installer presents a wizard and shows the license file specified by the licenseFile
argument as one of the pages in the wizard. The user must accept the terms before installing the application.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
mac.signing-key-developer-id-installer=key
Name of the signing key used for Developer ID or Gatekeeper signing. If you imported a standard key from the Apple Developer Website, then that key is used by default. If no key can be identified, then the application isn’t signed.
mac.CFBundleVersion=value
Version number for the application, used internally. The value must be at least one integer and no more than three integers separated by periods (.) for example, 1.3 or 2.0.1. The value can be different than the value for the appVersion
argument. If the appVersion
argument is specified with a valid value and the mac.CFBundleVersion
argument isn’t specified, then the appVersion
value is used. If neither argument is specified, 100
is used as the version number.
Mac App Store Bundler Arguments
mac.app-store-entitlements=path
Location of the file that contains the entitlements that the application operates under. The file must be in the format specified by Apple. The path to the file can be specified in absolute terms, or relative to the invocation of javapackager
. If no entitlements are specified, then the application operates in a sandbox that’s stricter than the typical applet sandbox, and access to network sockets and all files is prevented.
mac.signing-key-app=key
Name of the application signing key for the Mac App Store. If you imported a standard key from the Apple Developer Website, then that key is used by default. If no key can be identified, then the application isn’t signed.
mac.signing-key-pkg=key
Name of the installer signing key for the Mac App Store. If you imported a standard key from the Apple Developer Website, then that key is used by default. If no key can be identified, then the application isn’t signed.
mac.CFBundleVersion=value
Version number for the application, used internally. The value must be at least one integer and no more than three integers separated by periods (.) for example, 1.3 or 2.0.1. The value can be different than the value for the appVersion
argument. If the appVersion
argument is specified with a valid value and the mac.CFBundleVersion
argument isn’t specified, then the appVersion
value is used. If neither argument is specified, then 100
is used as the version number. If this version is an upgrade for an existing application, then the value must be greater than previous version number.
Linux Debian Bundler Arguments
The license file specified by the licenseFile
argument isn’t presented to the user in all cases, but the file is included in the application metadata.
category=category
Category for the application. See Registered Categories in Desktop Menu Specification for examples.
copyright=string
Copyright string for the application. This argument is used in the Debian metadata.
email=address
Email address used in the Debian Maintainer field.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
licenseType=type
Short name of the license type, such as -BlicenseType=Proprietary
, or '-BlicenseType=GPL v2 + Classpath Exception'
.
vendor=value
Corporation, organization, or individual providing the application. This argument is used in the Debian Maintainer field.
Linux RPM Bundler Arguments
category=category
Category for the application. See Registered Categories in Desktop Menu Specification for examples.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
licenseType=type
Short name of the license type, such as -BlicenseType=Proprietary
, or '-BlicenseType=GPL v2 + Classpath Exception'
.
vendor=value
Corporation, organization, or individual providing the application.
Windows EXE Bundler Arguments
copyright=string
Copyright string for the application. The string must be a single line no longer than 100 characters. This argument is used in various executable file and registry metadata.
installdirChooser=boolean
Flag that indicates if the user can choose the directory in which the application is installed. Set to true
to show a dialog box for the user to choose the directory. Set to false
to install the application in the directory indicated by the systemWide
argument. The default is false
.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
menuHint=boolean
Flag that indicates if a shortcut is installed on the Start menu or Start screen. Set to true
to install the shortcut. The default is true
.
shortcutHint=boolean
Flag that indicates if a shortcut is placed on the desktop. Set to true
to add a shortcut to the desktop. The default is false
.
systemWide=boolean
Flag that indicates if the application is installed in the Program Files
directory or in the standard location in the users home directory. Set to true
to install the application in Program Files
. Set to false
to install the application in the user's home directory. The default is false
.
win.menuGroup=group
Menu group in which to install the application when menuHint
is true
. This argument is ignored when menuHint
is false
.
vendor=value
Corporation, organization, or individual providing the application. This argument is used in various executable file and registry metadata.
Windows MSI Bundler Arguments
installdirChooser=boolean
Flag that indicates if the user can choose the directory in which the application is installed. Set to true
to show a dialog box for the user to choose the directory. Set to false
to install the application in the directory indicated by the systemWide
argument. The default is false
.
licenseFile=path
Location of the End User License Agreement (EULA) to be presented or recorded by the bundler. The path is relative to the packaged application resources, for example, -BlicenseFile=COPYING
.
menuHint=boolean
Flag that indicates if a shortcut is installed on the Start menu or Start screen. Set to true
to install the shortcut. The default is true
.
shortcutHint=boolean
Flag that indicates if a shortcut is placed on the desktop. Set to true
to add a shortcut to the desktop. The default is false
.
systemWide=boolean
Flag that indicates if the application is installed in the Program Files directory or in the standard location in the users home directory. Set to true
to install the application in Program Files. Set to false
to install the application in the user's home directory. The default is true
.
win.menuGroup=group
Menu group in which to install the application when menuHint
is true
. This argument is ignored when menuHint
is false
.
vendor=value
Corporation, organization, or individual providing the application. This argument is used in various executable file and registry metadata.
Deprecated Options
The following options are no longer used by the packaging tool and are ignored if present.
-embedCertificates
If present, the certificates will be embedded in the JNLP file. Deprecated –deploy
option.
-noembedlauncher
If present, the packager will not add the JavaFX launcher classes to the JAR file. Deprecated.
Notes
A
-v
option can be used with any task command to enable verbose output.Portable version: (2,526 KB) – unpack the zip in some folder and run html-notepad.exe from there. C for notepad mac. Universal version, works on all Windows version starting from Windows XP (coming)Mac OSInstallation package: (4,826 KB) Linux (requires GTK 3)Portable executable: (4,281 KB) – unpack the tarball in some folder and run html-notepad from there. Installation executable: (2,180 KB).
When the
-srcdir
option is allowed in a command, it can be used more than once. If the-srcfiles
option is specified, then the files named in the argument are looked for in the location specified in the preceding-srcdir
option. If there is no-srcdir
preceding-srcfiles
, then the directory from which thejavapackager
command is executed is used.
Examples
Packages the contents of the classes
directory to outjar.jar
, and sets the application class to package.ClassName
.
Generates outfile.jnlp
and the corresponding outfile.html
files in outdir
for the application AppName
, which is started by package.ClassName
and has dimensions of 34 by 43 pixels.
Note:
The-makeall
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release.Does all the packaging work including compilation, createjar
, and deploy
.
Note:
The-signjar
command for the Java Packager tool is deprecated in JDK 9 in preparation for removal in a future release. It also doesn’t work with multirelease JAR files. Use the jarsigner tool to sign the JAR file.Signs all of the JAR files in the dist
directory, attaches a certificate with the specified alias, keyStore
and storePass
, and puts the signed JAR files back into the dist
directory.
Linux:
Generates the native Linux Debian package for running the BrickBreaker
application as a self-contained application.
Windows:
Generates the native Windows EXE package for running the BrickBreaker
application as a self-contained application.