Java Platform, Standard Edition Deployment Guide
Contents    Previous    Next

JavaFX Ant Task Reference

The following items comprise the main JavaFX Ant tasks:

Items are in alphabetical order.

<fx:deploy>

Description

Generates a package for both web deployment and standalone applications. The package includes a set of JAR files, a JNLP file, and an HTML file.

Parent Elements

None.

Parameters

Table 10-2 fx:deploy

Attribute Description Type Required?

embeddedHeight

If present, this value will be used for Javascript/HMTL code instead of width/height. Affects only embedded deployment mode.

Use it if you want to specify a relative dimension for an embedded application.

See Section 5.8.4, "Publishing an Application that Fills the Browser Window."

String

No

embeddedWidth

Same description as for embeddedHeight.

String

No

embedjnlp

If true, embed the JNLP descriptor into the web page. Reduces number of network connections to be made on startup and helps to improve startup time.

Boolean

No

Default is false.

extension

Treat the files named in srcfiles as extensions. If present, only a portion of the deployment descriptor is generated, and the HTML file is not generated.

Boolean

No

Default is false.

height

Height of the application scene, for embedding applications into a web page.

String

Yes

includeDT

If set to true, files related to the Deployment Toolkit will be copied to a web-files subdirectory of the directory specified in outdir. This setting is useful for offline development but is not advised for production.

Boolean

No

Default is false.

nativeBundles

Values:

  • all

  • deb

  • dmg

  • exe

  • image

  • installer

  • mac.appStore

  • msi

  • none

  • pkg

  • rpm

Value all produces all applicable self-contained application packages. Value installer produces only installable packages, not a disk image. Value none produces no self-contained application packages. Or use another value to produce a specific package installer.

String

No

Default is none.

offlineAllowed

If the value is true, the cached application can operate even if the client system is disconnected from the network.

Boolean

Default is true.

outdir

Name of the directory in which output files are generated.

String

Yes

outfile

Prefix of the output files, without the extension.

String

Yes

placeholderref

Placeholder in the web page where the application will be embedded. This is expected to be JavaScript DOM object.

String

Yes

Either reference or ID of placeholder is required.

placeholderid

Used with callbacks. The ID of the placeholder in the web page where application will be embedded. The JavaScript function document.getElementById() is used to resolve it.

String

Yes

Either the reference or the ID of the placeholder is required.

signBundle

Used for self-contained applications to request that the bundler sign the bundle that is generated. This attribute is ignored by bundlers that do not support signing. At the time of the 8u40 release of the JDK, only OS X bundlers support signing.

Boolean

Default depends on the bundler used.

updatemode

Indicates the preferences for when checks for application updates are performed for embedded and Web Start applications.

A value of always means to always check for updates before launching the application.

A value of background means to launch the application while checking for updates in the background.

See Section 5.9.1, "Background Update Check for the Application."

String

No

Default is background.

width

Width of the application scene, for embedding applications into a web page.

String

Yes


Parameters Accepted as Nested Elements

<fx:deploy> Task Usage Examples

Example 1 - Minimal <fx:deploy> Task

This is a simple example of an <fx:deploy> Ant task. It generates an HTML file and JNLP file into the web-dist directory and uses "Fish" as the prefix for the generated files.

<fx:deploy width="600" height="400"
        outdir="web-dist" outfile="Fish" 
        offlineAllowed="false">
    <fx:info title="Sample application"/>
    <fx:application refid="myapp"/>
    <fx:resources refid="myresources"/>
</fx:deploy>  
Example 2 - <fx:deploy> Task for an Application with a Preloader

The following Ant task creates a redistributable package for a simple application with a preloader. Details about the application and its resources are defined in the <fx:application> and <resource> elements in the task.

Note that the location of the output package is defined by the outdir attribute of the <fx:deploy> task. New files are generated using the name prefix specified in the outfile attribute. As a result of execution of this task, the following files are created in the web-dist folder:

  • preloader.jar

  • helloworld.jar

  • App.jnlp

  • App.html


Note:

By default, the deployment package uses auxiliary files from java.com to support web deployment. This is the preferred way, because it enables the application to always use the best way to deploy on the web. However, if you want to test your application in a closed network then you can include these files into your application package. To do this, pass includeDT="true" as an attribute in the <fx:deploy> Ant task.

<fx:deploy width="600" height="400"
        outdir="web-dist" outfile="App">
    <fx:info title="Sample application"/>
    <fx:application name="SampleApp" 
            mainClass="testapp.MainApp"
            preloaderClass="testpreloader.Preloader">
        <fx:param name="testVariable" value="10"/>
    </fx:application>
    <fx:resources>
        <fx:fileset requiredFor="preloader" dir="dist">
            <include name="preloader.jar"/>
        </fx:fileset>
        <fx:fileset dir="dist">
            <include name="helloworld.jar"/>
        </fx:fileset>
    </fx:resources>
</fx:deploy>
Example 3 - <fx:deploy> Task with Secondary Launchers

This example creates a package for a self-contained application that contains a secondary launcher that can be used to start the application in a memory-constrained environment. The main launcher does not set JVM options. The secondary launcher passes an option to limit the amount of memory used.

<fx:deploy outdir="../samples/test/ant" nativeBundles="image">
    <fx:application name="Secondary Launcher Sample"
                    mainClass="hello.Test"/>

    <fx:resources>
        <fx:fileset dir="../samples/test/resources" includes="mainApp.jar"/>
    </fx:resources>

    <fx:info title="Secondary Launcher Test"/>

    <fx:secondaryLauncher
        mainClass="hello.Test"
        name="Standard Launch"/>
 
    <fx:secondaryLauncher name="Memory Constrained">
        <fx:jvmarg="-xmx64m"/>
    </fx:secondaryLauncher>
</fx:deploy>

<fx:jar>

Description

Packages a JavaFX application into a JAR file. The set of files to be included is defined by nested <fx:fileset> parameters. The <fx:jar> task also embeds a JAR manifest into the JAR file.

In addition to creating a JAR archive, this task also:

  • Embeds the JavaFX launcher, which detects the presence of JavaFX Runtime, sets up the environment, and executes the application.

  • Embeds the fallback AWT applet, to be used if JavaFX is not available.

  • Creates a manifest in the JAR file.

The resulting JAR file supports launching by double-clicking.

Parent Elements

None.

Parameters

Parameters Accepted as Nested Elements

<fx:jar> Usage Examples

See Example 10-3 and the following example.

Example 1 - <fx:jar> Ant Task for a Simple Application

This example shows how to use the <fx:jar> Ant task to create the main application JAR file for a simple application without a custom preloader. The resulting JAR file performs the following two actions:

  • Starts test.MyApplication with all resources needed on the classpath when launched as java -jar application.jar or by double-clicking the JAR file.

  • Automatically detects the location of JavaFX Runtime and prompts the user to install it if it is not available, or reports if the platform is not supported.

<!-- Expect definition of JavaFX ant tasks is already imported -->
 
<fx:jar destfile="dist/application.jar">
    <!-- Details about application -->
    <fx:application name="Sample JavaFX application"
            mainClass="test.MyApplication"/>
 
    <!-- Define what auxilary resources are needed -->
    <fx:resources>
        <fx:fileset dir="dist" includes="lib/*.jar"/>
    </fx:resources>
            
    <!-- What to include into result jar file?
         Everything in the build tree -->
    <fileset dir="build/classes"/>
 
    <!-- Customize jar manifest (optional) -->
    <manifest>
        <attribute name="Implementation-Vendor" value="Samples Team"/>
        <attribute name="Implementation-Version" value="1.0"/>
    </manifest>
</fx:jar>   

JavaFX Ant Helper Parameter Reference

Helper parameters are types that are used by the JavaFX tasks described in JavaFX Ant Task Reference. This reference page contains the following elements:

Items are in alphabetical order.

<fx:application>

Description

Basic application descriptor. It defines the main components and default set of parameters of the application.

Parent Elements

Parameters

* If refid is used, then none of the other parameters can be specified.

Parameters Accepted as Nested Elements

<fx:application> Usage Examples

See Example 10-3.

<fx:association>

Description

Associates file extensions or MIME types with a self-contained application. Multiple instances of this element are supported.

Parent Element

Parameters

Footnote1Required on Windows. Either extension or mimetype must be provided on OS X.

Footnote2Required on Linux. Either extension or mimetype must be provided on OS X.

Parameters Accepted as Nested Elements

None.

<fx:association> Usage Example

Example 1 - Associate Files with a Self-Contained Application

This example associates a self-contained application on Windows with files that have the file extension .aaa or .bbb. and provides a description and icon.

<fx:info title="Association example">
  <fx:association extension="aaa bbb" description="MyApp Data Files"
      icon="MyApp.ico">
  </fx:association>
</fx:info>

<fx:bundleArgument>

Description

Specifies an argument for the bundler that is used to create self-contained applications. Each type of bundler has its own set of arguments.

Parent Elements

Parameters

Arguments for Self-Contained Application Bundlers

Each type of bundler (OS X, Linux, and Windows) has its own set of arguments.

General Bundler Arguments

preferencesID

ID of a <fx:preferences> element to check for JVM options that the user can override.

OS X Application Bundler Arguments

icon

The path to the default icon to use for launchers and other assists. The file format is .icns.

mac.bundle-id-signing-prefix

Prefix that is applied to the signed binary when binaries that lack property list files (plists, which use the extension .plist) or existing signatures are found inside the bundles.

mac.category

Category for the application. The category must be in the list of categories found on the Apple Developer website.

mac.CFBundleIdentifier

Value stored in the info.plist file 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 of the application as it appears on the Mac Menu Bar. A name of less than 16 characters is recommended. The default is the name attribute of the <fx:application> element.

mac.CFBundleVersion

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 version attribute of the <fx:application> element. If the version attribute is specified with a valid value and the mac.CFBundleVersion argument is not specified, then the value for the version attribute is used. If neither value is specified, 100 is used as the version number.

mac.signing-key-developer-id-app

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 is not signed.

OS X DMG (Disk Image) Bundler Arguments

mac.CFBundleVersion

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 version attribute of the <fx:application> element. If the version attribute is specified with a valid value and the mac.CFBundleVersion argument is not specified, then the value for the version attribute is used. If neither value is specified, 100 is used as the version number.

mac.dmg.simple

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 does not have a background image, and the icons are not 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.

OS X PKG Bundler Arguments

mac.CFBundleVersion

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 version attribute of the <fx:application> element. If the version attribute is specified with a valid value and the mac.CFBundleVersion argument is not specified, then the value for the version attribute is used. If neither value is specified, 100 is used as the version number.

mac.signing-key-developer-id-installer

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 is not signed.

Mac App Store Bundler Arguments

mac.app-store-entitlements

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 your Ant file. If no entitlements are specified, then the application operates in a sandbox that is stricter than the typical applet sandbox, and access to network sockets and all files is prevented.

mac.CFBundleVersion

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 version attribute of the <fx:application> element. If the version attribute is specified with a valid value and the mac.CFBundleVersion argument is not specified, then the value for the version attribute is used. If neither value is specified, 100 is used as the version number. If this version is an upgrade for an existing application, the value must be greater than the previous version number.

mac.signing-key-app

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 is not signed.

mac.signing-key-pkg

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 is not signed.

<fx:bundleArgument> Usage Example

The following example specifies that the generated Windows Installer Package (MSI file) create a Start Menu shortcut in a menu group named Sample Applications. Note that you must specify that the bundler create an MSI file with the nativeBundles attribute of the <fx:deploy> element.

<fx:deploy outdir="." outfile="helloworld" nativeBundles="msi">
    <fx:platform basedir="${JAVA_HOME}"/>
    <fx:application refId="HelloWorldID"/>
    <fx:resources refid="appRes"/>
    <fx:info title="Hello World Example" vendor="Oracle Corporation"/>
    <fx:bundleArgument arg="win.menuGroup" value="Sample Applications"/>
</fx:deploy>

<fx:fileset>

Description

Extension of the standard Ant FileSet type, which provides the means to specify optional meta information on a selected set of files. This includes:

  • Type of resource (see the type attribute)

  • Operating system and architecture for which this resource is applicable

  • When this resource is needed, which helps to optimize loading order

Depending on type, the resource might not be used by the enclosing task. See Section 5.7.2, "Application Resources" for details.

A fileset of type "jar" is expected to contain a set of JAR files to be added to the classpath.

Resource of type "native" is expected to be a JAR file with a set of native libraries. In most of cases, it makes sense to set the operating system and architecture for this resource too.

Resources of type "jnlp" are expected to contain JNLP files defining external JNLP extensions.

Filesets of type "license" can contain arbitrary files, but additional restrictions can be applied when they are actually used (for example, on Mac it has to be a plain text file, and on Windows it needs to be RTF).

Filesets of type "data" can contain arbitrary files.

Parent Elements

Parameters

* If refid is used, then none of the other parameters can be specified.

Parameters Accepted as Nested Elements

None (except standard Ant elements).

<fx:htmlParam>

Description

Parameter to be passed to the embedded or Web Start application from the HTML page. The value of the parameter can be calculated at runtime using JavaScript.

Parent Elements

Parameters

Parameters Accepted as Nested Elements

None

<fx:htmlParam> Task Usage Examples

Example 1 - Various Parameters Passed from HTML Page
<fx:application name="Sample app"
        mainClass="test.MyApplication">
    <!-- Parameters passed from HTML page. Only applicable 
         for embeddeded and Web Start applications and unused when
         run in a standalone and self-contained context.  -->
    <!-- Parameter with name 'fixedParam', whose value is string 
        '(new Date()).getTime()' -->
    <htmlParam name="fixedParam"
           value="(new Date()).getTime()"/>
    <!-- Parameter with name 'dynamicParam', whose value will be 
         the timestamp of the moment when the application is added  
         to the web page (value will be assigned the result 
         of execution of JavaScript code) -->
    <htmlParam name="dynamicParam" escape="false"
            value="(new Date()).getTime()"/>
</fx:application> 

<fx:icon>

Description

Passes an icon to the <fx:deploy> task, other than a splash screen image.

The icon specified in this element is used for Web Start and desktop applications.

Note that in JavaFX 2.2, only icons of type default are used for self-contained applications. For details on how to customize the icon for self-contained applications, see Section 7.3.3, "Customizing the Package Using Drop-In Resources."

Parent Elements

Parameters

Parameters Accepted as Nested Elements

None.

<fx:icon> Usage Examples

Example 1 - Use of <fx:icon>
<fx:info title="Sample application">
    <!-- icon to be used by default for anything but splash -->
    <fx:icon href="shortcut.ico" kind="shortcut"
            width="32" height="32" depth="8"/> 
</fx:info> 

<fx:platform>

Description

Defines application platform requirements.

Parent Elements

Parameters

* If refid is used, then none of the other parameters can be specified.

Parameters Accepted as Nested Elements

<fx:platform> Usage Examples

Example 1 - <fx:platform> Parameter to Specify Version

In this example, the application needs JavaFX Runtime version 2.1 or later and JRE version 7.0 or later.

<fx:platform javafx="2.1+" j2se="7.0"/>
Example 2 - <fx:platform> Parameter to Specify JVM Options

In this example, the application needs JavaFX Runtime version 2.1 or later and needs to run in a JVM launched with "-Xmx400 -verbose:jni -Dpurpose="sample value".

<fx:platform javafx="2.1+">
    <fx:jvmarg value="-Xmx400m"/>
    <fx:jvmarg value="-verbose:jni"/>
    <property name="purpose" value="sample value"/>
</fx:platform>
Example 3 - <fx:platform> Parameter to Specify User Overridable JVM Options

In this example, -Xmx768m is passed as a default value for heap size. The user can override this value in a user configuration file.

            <fx:platform>
              <fx:jvmuserarg name="-Xmx" value="768m" />
            </fx:platform>

<fx:preferences>

Description

Deployment preferences for the application. Preferences can be expressed but may not necessarily be satisfied, for example in the following cases:

  • The packager may ignore a preference if it is not supported for a particular execution mode.

  • JRE may ignore it if it is not supported.

  • The user may reject a request, for example if he is prompted whether a desktop shortcut can be created.

Parent Elements

Parameters

* If refid is used, then none of the other parameters can be specified.

Parameters Accepted as Nested Elements

None.

<fx:preferences> Usage Examples

Example 1 - <fx:preferences> Parameter to Add a Desktop Shortcut

This example shows a request to create a desktop shortcut.

<fx:preferences id="p1" shortcut="true"/>
Example 2 - <fx:preferences> Parameter to Mark as Installed

This example does the following:

  • It requests creation of a web deployment descriptor that will add the application to the Applications Menu and mark it as installed (in other words, the application will be listed in Add/Remove programs.)

  • If self-contained bundles are created, then they will be installed system-wide and will create an application entry in the Applications menu.

<fx:preferences shortcut="false" install="true" menu="true"/>
Example 3 - Using a refid to the <fx:preferences> Parameter

This example uses a reference to the <fx:preferences> parameter in <fx:preferences> Parameter to Add a Desktop Shortcut to create the shortcut.

<fx:resource refid="p1"/>

<fx:resources>

Description

The collection of resources used by the application. Defined as a set of JavaFX FileSet filters. Could be reused using id or refid.

Parent Elements

Parameters

* If refid is used, then none of the other parameters can be specified.

Parameters Accepted as Nested Elements

<fx:resources> Usage Examples

See also examples in Chapter 5, "Packaging Basics" and Chapter 7, "Self-Contained Application Packaging."

Example 1 - <fx:resources> Parameters Used with id and refid Attributes

In this example, both <fx:resources> elements define the collection, consisting of s.jar in the dist directory. The first <fx:resources> element uses an id attribute, and the second <fx:resources> element refers to the first with the refid attribute.

<fx:resources id="aaa">
    <fx:fileset dir="dist" includes="s.jar"/>
</fx:resources>
<fx:resources refid="aaa"/>
Example 2 - Using <fx:resources> for Extension Descriptors

If you mix signed and unsigned JAR files, use an additional <fx:deploy> Ant task to generate an extension descriptor for each JAR file, and refer to the extension descriptors by treating them as resources in the main file, as shown in this example.

<!-- Prepare extension -->
<fx:deploy extension="true"
        outdir="dist" outfile="other">
    ...
<fx:deploy>
 
<!-- Use it in the main descriptor -->
<fx:deploy outdir="web-dist" ...>
    ...
    <fx:resources>
        <fx:fileset dir="dist" includes="other.jnlp"/>
            ...
    </fx:resources>
<fx:deploy>

<fx:secondaryLauncher>

Description

Identifies a secondary entry point for a self-contained application. This parameter is ignored for standalone applications, applications embedded in a web page, or applications launched from a browser.

This parameter is valid only for Windows and Linux applications.

Parent Elements

Parameters

Parameters Accepted as Nested Elements

<fx:secondaryLauncher> Usage Example

See <fx:deploy> Task with Secondary Launchers.

<fx:template>

Description

Template to preprocess. A template is an HTML file that contains markers to be replaced with the JavaScript or HTML snippets that are required for web deployment. Using templates enables you to deploy your application directly into your own web pages. This simplifies the development process, especially when the application is tightly integrated with the page, for example when the web page uses JavaScript to communicate to the application.

Template markers have one of the following forms:

  • #XXX#

  • #XXX(id)#

id is the identifier of an application and XXX is one of following:

  • DT.SCRIPT.URL

    Location of dtjava.js in the Deployment Toolkit. By default, the location is

    https://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 will be wrapped in the function() method.

  • DT.EMBED.CODE.ONLOAD

    All the code needed to embed the application into a web page using the onload hook (except inclusion of dtjava.js).

  • DT.LAUNCH.CODE

    Code needed to launch the application. It is expected that the code will be wrapped in the function() method.

A page with different applications can be processed multiple times, one per application. To avoid confusion, markers must use application IDs with an alphanumeric string and no spaces.

If the input and output files are the same then the template is processed in place.

Parent Elements

Parameters

Parameters Accepted as Nested Elements

None

<fx:template> Usage Examples

Example 1 - <fx:template> Parameter Used in <fx:deploy> Task

This example shows a <fx:template> parameter in which both input and output files are specified.

<fx:template file="App_template.html" tofile="App.html"/>
Example 2 - <fx:template> Parameter in Context
<fx:deploy placeholderId="ZZZ"
        width="600" height="400"
        outdir="dist-web" outfile="App1">
    <fx:application id="myApp" name="Demo"
            mainClass="fish.FishApplication"/>
    <fx:template file="src/templates/EmbedApp_template.html"
            tofile="dist-web/EmbedApp.html"/>
    <fx:resources>
        <fx:fileset requiredFor="startup" dir="dist" includes="*.jar"/>
    </fx:resources>
</fx:deploy>
Contents    Previous    Next

Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.