
Javafx Self Contained Application Packaging For Mac

You use the javapackager command to perform tasks related to packaging Java and JavaFX applications.
Synopsis
commandThe 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.
optionsOne 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.
-createbssConverts CSS files into binary form. See Options for the createbss Command for the options used with this command.
-createjarProduces a JAR according to other parameters. See Options for the createjar Command for the options used with this command.
-deployAssembles 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.
-makeallNote:
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.
-signjarNote:
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 dirName of the directory that receives the generated output files.
-srcdir dirBase directory of the files to pack.
-srcfiles filesList 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-classQualified name of the application class to be executed.
-argument argAn unnamed argument to be inserted into the JNLP file as an <fx:argument> element.
-classpath filesList of dependent JAR file names.
-manifestAttrs manifest-attributesList of names and values for additional manifest attributes. Syntax:
-nocss2binThe packager doesn’t convert CSS files to binary form before copying to JAR file.
-noembedlauncherIf present, the packager will not add the JavaFX launcher classes to the jarfile.
-outdir dirName of the directory that receives the generated output files.
-outfile filenameName (without the extension) of the file that’s generated.
-paramfile fileProperties file with named parameters and their default values to pass to the application.
-preloader preloader-classQualified 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 versionSpecifies the version of the required JavaFX Runtime.
-srcdir dirBase directory of the files to pack.
-srcfiles filesList 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.
-allpermissionsIf present, the application requires all security permissions in the JNLP file.
-appclass app-classQualified name of the application class to be executed.
-argument argAn unnamed argument to be inserted into an <fx:argument> element in the JNLP file.
-Bbundler-argument=valueProvides 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-methodsSpecifies one or more user callback methods in generated HTML. The format is the following:
-description descriptionDescription of the application.
-embedjnlpIf present, the JNLP file embedded in the HTML document.
-embedCertificatesIf present, the certificates will be embedded in the jnlp file.
-height heightHeight of the application.
-htmlparamfile fileProperties file with parameters for the resulting application when it is run in the browser.
-isExtensionIf 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 pathA : separated list of directories, each directory is a directory of modules.
-name nameName of the application.
-native typeGenerate 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.jnlpand.htmlfiles 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 iftypeisn’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
.appfile.exe: Generates a Windows.exepackage.msi: Generates a Windows Installer package.dmg: Generates a DMG file for macOS.pkg: Generates a.pkgpackage 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.
-nosignLinux 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 dirName of the directory that receives the generated output files.
-outfile filenameName (without the extension) of the file that is generated.
-paramfile fileProperties file with named parameters and their default values to pass to the application.
-preloader preloader-classQualified 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 dirBase directory of the files to pack.
-srcfiles filesList 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.
-templateIdApplication ID of the application for template processing.
-templateInFilenameName 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.URLLocation of
dtjava.jsin the Deployment Toolkit. By default, the location ishttp://java.com/js/dtjava.js.DT.SCRIPT.CODEScript element to include
dtjava.jsof the Deployment Toolkit.DT.EMBED.CODE.DYNAMICCode to embed the application into a given placeholder. It is expected that the code is wrapped in the
function()method.DT.EMBED.CODE.ONLOADAll of the code needed to embed the application into a web page using the
onloadhook (except inclusion ofdtjava.js).DT.LAUNCH.CODECode needed to launch the application. It’s expected that the code is wrapped in the
function()method.
-templateOutFilenameName of the HTML file generated from the template.
-title titleTitle of the application.
-updatemode update-modeSets the update mode for the JNLP file.
-vendor vendorVendor of the application.
-width widthWidth 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-classQualified name of the application class to be executed.
-classpath filesList of dependent JAR file names.
-height heightHeight of the application.
-name nameName of the application.
-preloader preloader-classQualified 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.
-vEnables verbose output.
-width widthWidth 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-aliasAlias for the key.
-keyPass passwordPassword for recovering the key.
-keyStore fileKeystore file name.
-outdir dirName of the directory that receives the generated output files.
-storePass passwordPassword to check the integrity of the keystore or unlock the keystore.
-storeType typeKeystore type. The default value is jks.
-srcdir dirBase directory of the files to pack.
-srcfiles filesList 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=versionVersion of the application package. Some bundlers restrict the format of the version string.
arguments=option=valueArguments 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=pathClass 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=directoryDirectory 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=pathLocation 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=valueDefault 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=optionOption 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=valueJava 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=filenameName 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=nodePreferences 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=pathLocation 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=valueJVM 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=categoryCategory for the application. The category must be in the list of categories found on the Apple Developer website.
mac.CFBundleIdentifier=valueValue 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=nameName 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=valueVersion 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=keyName 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=prefixPrefix 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=pathLocation 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=booleanFlag 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=valueVersion 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=booleanFlag 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=pathLocation 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=keyName 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=valueVersion 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=pathLocation 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=keyName 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=keyName 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=valueVersion 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=categoryCategory for the application. See Registered Categories in Desktop Menu Specification for examples.
copyright=stringCopyright string for the application. This argument is used in the Debian metadata.
email=addressEmail address used in the Debian Maintainer field.
licenseFile=pathLocation 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=typeShort name of the license type, such as -BlicenseType=Proprietary, or '-BlicenseType=GPL v2 + Classpath Exception'.
vendor=valueCorporation, organization, or individual providing the application. This argument is used in the Debian Maintainer field.
Linux RPM Bundler Arguments
category=categoryCategory for the application. See Registered Categories in Desktop Menu Specification for examples.
licenseFile=pathLocation 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=typeShort name of the license type, such as -BlicenseType=Proprietary, or '-BlicenseType=GPL v2 + Classpath Exception'.
vendor=valueCorporation, organization, or individual providing the application.
Windows EXE Bundler Arguments
copyright=stringCopyright 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=booleanFlag 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=pathLocation 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=booleanFlag 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=booleanFlag 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=booleanFlag 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=groupMenu group in which to install the application when menuHint is true. This argument is ignored when menuHint is false.
vendor=valueCorporation, organization, or individual providing the application. This argument is used in various executable file and registry metadata.
Windows MSI Bundler Arguments
installdirChooser=booleanFlag 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=pathLocation 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=booleanFlag 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=booleanFlag 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=booleanFlag 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=groupMenu group in which to install the application when menuHint is true. This argument is ignored when menuHint is false.
vendor=valueCorporation, 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.
-embedCertificatesIf present, the certificates will be embedded in the JNLP file. Deprecated –deploy option.
-noembedlauncherIf present, the packager will not add the JavaFX launcher classes to the JAR file. Deprecated.
Notes
A
-voption 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
-srcdiroption is allowed in a command, it can be used more than once. If the-srcfilesoption is specified, then the files named in the argument are looked for in the location specified in the preceding-srcdiroption. If there is no-srcdirpreceding-srcfiles, then the directory from which thejavapackagercommand 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.