Super Prev Next

Installation and setup

Excelsior JET comes preconfigured for one of the recent Java SE versions, such as Java SE 8 Update 181 (1.8.0_181) /This is a microversion of the latest major Java version which is tested against the entire Excelsior JET test suite./ If your application can be run successfully on that specific version of OpenJDK and does not require endorsed standards override, you can begin using Excelsior JET right after installation. If your application requires a different Java SE microversion or overrides endorsed standards, you also have to configure Excelsior JET accordingly before compiling your application. See Profiles for details.

Super Prev Next

System requirements

The system requirements for Excelsior JET itself are as follows:

CPU: x86 (Pentium 4 and above) or compatible;
  x64 (AMD64/Intel 64 or compatible)
RAM: 2GB minimum, 3GB or more recommended
Disk space: 1.5GB minimum
  Note: Creation of a new profile requires up to 1GB extra for temporary use.
Display: The JET Control Panel and JetPackII graphical tools require display resolution of 1024x768x256c minimum (HiColor recommended). If such resolution is not available, the product may still be used in the command-line mode.
Operating system: Microsoft Windows 10, Windows 8.x, 7, Server 2012, or Server 2008 R2

The system requirements for applications compiled by Excelsior JET are as follows:

CPU: x86 (Pentium 4 and above) or compatible;
  x64 (AMD64/Intel 64 or compatible)
RAM: Most applications will need the same amount of RAM as if run on OpenJDK
Disk space: A binary executable created by Excelsior JET in the default mode will occupy 2-3 times more disk space than the original jar file. It also requires the Excelsior JET Runtime (set of DLLs and data files) to run, but does not require OpenJDK installed.
Display: Same requirements as if run on OpenJDK
Operating system: Excelsior JET 15.3 for Windows has been thoroughly tested on the following operating systems:
  • Windows Server 2008 (x86)
  • Windows 7 (x64)
  • Windows 8 (x64)
  • Windows Server 2012 (x86 and x64)
  • Windows 10 (x86 and x64)

Excelsior JET has been been implemented according to the specification of the Java platform, Standard Edition 8, and contains OpenJDK code of that version of the Java SE platform API and JavaFX 8 under Classpath Exception.

Super Prev Next


Note: Before starting installation on Windows, it is recommended that you log on with administrator authority.

Excelsior JET is distributed as a self-installing package. To begin installation, simply launch the EXE file you have downloaded and follow the on-screen prompts.

After successful installation, the JET Setup program will be invoked automatically to let you configure Excelsior JET for a particular Java SE microversion required by your application (see Profiles.):

If your application works fine on the version of OpenJDK indicated in the Use default profile option, simply click Finish. JET Setup will close and the JET Control Panel will open automatically unless you have unchecked the respective box.

Otherwise, select Create a new profile and click Next to proceed to the Profile Manager.

Super Prev Next

Installing different versions of Excelsior JET

You can install multiple versions and/or editions of Excelsior JET on the same developer system. It may be of help, for example, if you are using a legacy version in production and want to try an Evaluation Package of the most recent release.

To do that, simply install different versions into different directories and then use full pathnames to invoke the Excelsior JET tools of a particular version.

Notice: To avoid conflicts with the already installed version in Windows Registry and in the properties of desktop shortcuts, launch the installer with the /no-reg option that disables shortcuts creation and modifications of Registry, for example:

    jet-1530-pro-en-windows-x86.exe /no-reg

If you do this, the installer would leave no trace in the system so it will be safe to simply remove the installation directory should you decide to uninstall that version.

Native applications built by the compiler invoked using its full pathname will automatically link to the respective version of the JET Runtime, so you no longer need to modify the PATH environment variable. You may still want to add JET-home/bin to PATH for convenience, but if you also have a version prior to 11.3 installed, we recommend you to set up PATH to point to that legacy version, and invoke the newer version using full pathnames.

Notice: Be careful when building the installation packages for your Java applications: you should invoke the JetPackII setup authoring tool or the xpack utility (see chapter Deployment automation) from the same Excelsior JET installation that you used when compiling the executable.

Super Prev Next


A profile is a set of Excelsior JET Runtime files /DLLs with precompiled platform API classes, DLLs with native methods, resource files, etc./ for a particular Java SE version, possibly with some Endorsed Standards and/or Standalone Technologies overridden.

Endorsed Standards are standards that are created outside of the Java Community Process, such as the org.w3c.dom API. Standalone Technologies are the technologies included in the Java platform that are also available separately and have their own release schedule, such as JAXB or JAX-WS. The Endorsed Standards Override Mechanism enables incorporation of later versions of classes and interfaces that implement Endorsed Standards or Standalone Technologies into the Java Platform.

A new installation of Excelsior JET contains a single default profile. It is typically based on the latest Java SE microversion available at the moment of publishing the current release of Excelsior JET. This profile has no Endorsed Standards overridden.

Using the JET Setup program, you may create additional profiles and switch between them according to the requirements of your applications. New profiles are based on one of the Java SE microversions supported by your installation of Excelsior JET. JET Setup displays the list of supported microversions when you start creating a new profile.

Typically, each version of Excelsior JET supports only one Java SE microversion at the time of release. As OpenJDK of a newer Java SE microversions is issued, Excelsior provides updates for JET that add support for those microversions. Visit Excelsior’s Web site to find out which versions of Java your version of Excelsior JET can support.

Creation of a new profile involves precompilation of Java platform classes for a particular Java SE microversion into a set of DLLs. It is important to note that if your application relies on the Endorsed Standards Override Mechanism, it is the overriding classes that have to be precompiled, not their counterparts shipped with the Java platform.

Note: JET Setup is launched automatically at the end of the installation process. Later, you access it by selecting the JET Setup item from the Excelsior JET Start Menu folder.

Super Prev Next

Profile management

Upon startup, JET Setup displays the main Profile Management screen:

Each item in the list of profiles contains a profile name, a status tag, and the names of jar files that contain classes overriding endorsed standards, if any were specified during profile creation / Moving the mouse over an item displays a tooltip with full pathnames of those jar files./ .

Profile names are based on respective Java SE version numbers, for example, the name “1.8.0_181 (2)” means that this profile is based on Java SE 8 Update 181.

Status tags have the following meanings:


The profile is consistent and up-to-date and Excelsior JET is currently set up to compile your applications against it.

The profile is consistent and up-to-date. Select it and click Activate to make it the active profile.

The profile may not be used, because an Excelsior JET update was applied or rolled back, so a (partial) rebuild of the profile is necessary for correct operation.

The profile was damaged and may not be used. Usually this indicates that one or more of its files are missing.

There is a profile directory on the disk, but JET Setup has no information about that profile. Usually this happens as a result of installing Excelsior JET on top of a previous installation. All you can do with such a profile is remove it.

To create a new profile, click New. The New Profile wizard shall display.

To change the active profile, select a profile marked as Ready, click Activate and click Close to exit JET Setup.

To refresh an Outdated profile, select it from the list and click Refresh. If recompilation of Java platform classes is necessary, time and disk space estimations will be displayed. Make sure you have enough disk space, close all applications you do not need at the moment and click Next to begin compilation.

To make an outdated profile ready for use without refreshing it, use the Update Manager to rollback to the update level matching that profile.

To repair a Damaged profile, select it from the list and click Repair. If recompilation of Java platform classes is necessary, time and disk space estimations will be displayed. Make sure you have enough disk space, close all applications you do not need at the moment and click Next to begin compilation.

To delete a profile you no longer need, select it from the list and click Delete.

To exit JET Setup, click Close. If no profile is marked Active, a message box shall display, urging you to activate a profile.

Super Prev Next

Creating a profile

Super Prev Next

Choosing Java SE version

The wizard displays the list of exact Java SE versions supported by your Excelsior JET installation, such as 1.8.0_181:

If the desired version is not listed, you need to download the respective updates from Excelsior’s Web site, install them and restart JET Setup. If your application strongly require a particular Java SE version that is neither supported by your JET installation nor present at the list of available updates on the web site, please contact Excelsior.

After you selected the Java SE version, click Next to proceed. The Endorsed Standards Override screen will display.

Super Prev Next

Endorsed standards override

According to the Oracle documentation, endorsed standards are APIs included in the Java Platform but defined through a process other than the Java Community Process. As a result, newer versions of such APIs may become available between Java Platform releases. The Endorsed Standards Override Mechanism is the only “official” way for application authors to use such newer versions of endorsed standards in their Java applications (you may not use the BOOTCLASSPATH feature in a production environment.)

By default, the OpenJDK HotSpot VM looks for jars with overriding classes in directories listed in the java.endorsed.dirs system property, which in turn defaults to the lib/endorsed subdirectory of the JRE directory.

For details, see Oracle Java SDK documentation.

After you select the Java SE version, JET Setup displays the Endorsed Standards Override screen:

If you are not sure whether the application you want to compile requires endorsed standards override, do the following:

  1. Check whether the java.endorsed.dirs property is specified when the application is run on the HotSpot VM.
  2. If java.endorsed.dirs is not explicitly specified, check whether a subdirectory lib\endorsed is present in the directory containing OpenJDK on which the application normally runs, and whether it contains any jar files.

Now choose one of the following options:

Do not override endorsed standards (default)

Select this option if the property java.endorsed.dirs is not set when your application is run on OpenJDK and the lib\endorsed subdirectory of the respective OpenJDK directory is absent or does not contain any jar files.

Also select this option if the property java.endorsed.dirs is set to an empty string.

Specify the java.endorsed.dirs property

Select this option and enter the list of directories (separated by semicolons) that contain jars overriding the endorsed APIs. That list must match the value you give to the property java.endorsed.dirs when you run your application on the respective version of OpenJDK. IF you do not set that property, instead placing the jars into the lib\endorsed subdirectory of that OpenJDK, you may enter the full pathname of that subdirectory.

The jars with endorsed standards will be picked up automatically and displayed in the listbox at the bottom of the screen.

Specify particular jars (for advanced users)

If you want complete freedom, select this option and add/remove particular jars to/from the list using the “+” and “-” buttons.

Note: During profile creation, the jars will be copied to the Excelsior JET profile directory, so if you update the original jars or need to switch to a different set of jars with endorsed standards, you will have to create a new profile.

Click Next to proceed. The confirmation screen shall display.

Super Prev Next


Before creating, updating, or repairing a profile, JET Setup displays a confirmation screen:

Review your selections and click Next to proceed, or click Back if you need to make any corrections. The status screen with progress indicators shall display:

If compilation of Java platform API classes is required, the process may take from 30 minutes to several hours, depending on the your system configuration.

Note: If the compilation process is too slow, disable local filesystem access monitoring in your anti-virus software. Do not forget to re-enable it after the compilation process ends.

Upon successful completion of a profile creation, refresh, or repair operation, the wizard shall display the following information screen:

By default, after you click Finish, JET Setup will activate the profile you have just created and close automatically, launching the JET Control Panel for you. To return to the main Profile Manager screen, clear the Start JET Control Panel checkbox and click Finish. To return to the main Profile Manager screen without activating the profile you have just created, clear the respective checkbox and click Finish.

Super Prev Next


Excelsior periodically issues updates to the Excelsior JET product which fix bugs, add support for the latest Java SE microversions, and may include minor feature enhancements. The JET Setup tool includes an update manager that enables you to install and apply product updates, rollback to previous update levels and select custom combinations of updates.

The set of files constituting the product is split into logical components, such as compiler, runtime, graphical tools and utilities, samples, documentation, and so on. When a defect is resolved in one of the components, the engineering team may issue a hotfix containing a corrected version of that component.

Since components are dependent on each other, a hotfix may include two or more updated components, for instance, a fix in the compiler module that emits object files may require changes in the linker.

Hotfixes are always cumulative: a component included in a hotfix is built from sources containing fixes for all bugs addressed by previously issued hotfixes containing that component. This rule substantially simplifies update management.

Hotfixes are available on-demand. If you report a particular problem that is already resolved through a hotfix, the support team will email that hotfix to you.

A Maintenance Pack is essentially a hotfix for all components updated since the initial release of the given version of the product. Maintenance Packs are announced through mailing lists and are made available for download.

To minimize download size, any hotfix issued after the latest Maintenance Pack requires prior installation of that Maintenance Pack.

Super Prev Next

Update installation

An update is distributed as an executable file. When run, it tries to determine the location of the respective version of Excelsior JET on your system. It then unpacks the files constituting the update into a special location inside the JET directory and invokes JET Setup to apply the update.

Note: Updates that make changes in the compiler and runtime are most likely to change the status of the Active and Ready profiles to Outdated. When applying such an update, JET Setup runs the Profile Manager automatically to let you update the existing profiles or create new ones. If you plan to install another update (e.g. a hotfix issued after the Maintenance Pack you just installed), click Close.

Super Prev Next

Update management

Once you have installed one or more product updates, you can rollback to any update level or return to the latest level at any time as follows:

Select Manage JET Updates in the Excelsior JET Start Menu. This will display the basic interface of the Update Manager:

It displays the current update level, such as “jet-900-mp1”. To move one step back or forth in your update installation history, click Undo or Redo respectively. Do that repeatedly until the desired configuration of updates is displayed as current and click Next. JET Setup will display the set of profiles available for the configuration you have selected to let you activate one of them, possibly after a refresh.

If an Excelsior support engineer has advised you to select a particular combination of updates, do the following:

Select Manage JET Updates in the Excelsior JET Start Menu, and click Advanced. This will display the advanced Update Manager interface:

Use checkboxes to select the combination of updates suggested by Excelsior Support and click Next.

Super Prev Next

Cleaning up backed up configurations

Each time you install an update that invalidates the currently set up profiles, JET Setup backs up those profiles into a subdirectory of your Excelsior JET installation so as to enable rollback. Profiles occupy dozens of megabytes of disk space, so you may wish to remove profiles for update levels to which you do not plan to revert.

To remove backed-up profiles, run Manage JET Updates from the Excelsior JET Start Menu, click Advanced and then click Cleanup. This will display the list of profile backup directories:

Selecting a directory displays the description of the respective backup configuration. Click Cleanup to remove the selected directory and its contents. Click Close when you are done with cleanup.

Super Prev Next

JET Setup options summary

To access JET Setup functionality from the command line, invoke the jetsetup utility with the -batch option, followed by one or more of the following options:

-create-profile full-java-se-version

Initiates creation of a new profile. full-java-se-version is the complete version number of the Java platform for the new profile, for instance:

jetsetup -batch -create-profile 1.8.0_181

-endorsed-dirs dir-list

dir-list is a semicolon-separated list of directories containing jar files overriding endorsed standards. Ignored if the option -create-profile is not specified or the option -endorsed-jars is specified.

-endorsed-jars jar-list

dir-list is a semicolon-separated list of jar files overriding endorsed standards. Ignored if the option -create-profile is not specified.

If this option is specified, the option -endorsed-dirs is ignored.


Displays the list of currently available profiles.

-activate-profile index

Activates the profile denoted by index in the list of profiles. The profile must have Ready status.

-refresh-profile index

If the status of the profile denoted by index in the list of profiles is Outdated, refreshes it.

-repair-profile index

If the status of the profile denoted by index in the list of profiles is Damaged, repairs it.

-remove-profile index

Removes the profile denoted by index in the list of profiles.


Displays the list of installed and applied updates.

-activate-update update-names

Activates the updates denoted by update-names, which is a colon-separated list of update names.

-switch-to-update index

Reverts to the configuration of updates denoted by index in the list of applied updates.


Cleans up the backup directory.


Displays JET Setup version.

Super Prev Next

Reproducing the build environment

You may need to reproduce the Excelsior JET build environment for the given version of your application in the following circumstances:

If you do not have an SCM system or if your Excelsior JET installation is not managed, make sure to write down the following information for each version of each application you ship to end users or install in your production systems:

If you are using the endorsed standards override feature, you also need to keep copies of the respective jars or at least write down their exact versions.