Excelsior JET is a toolkit and complete runtime environment for optimizing, deploying and running applications written in the Java(tm)programming language. The product package includes Excelsior JET Optimizer, Excelsior JET Runtime and Excelsior JET Installation Toolkit.
The JET Optimizer enables you to convert your application’s classes and jars into optimized x86 (IA-32) code on the developer’s system. As a result, you get high performance native executables for Microsoft Windows or Linux. The produced native code is highly resistant to reverse engineering and tampering.
The JET Runtime includes the Java SE API licensed from Sun Microsystems and provides all low-level Java routines which the optimized executables need to run such as garbage collection.
Excelsior JET Optimizer and Runtime are certified for compliance with the specification of the Java platform, Standard Edition (Java SE), version 5.0.
If you want to distribute your application to a number of clients, you use the Installation Toolkit to prepare an installation package including your optimized Java application and the JET Runtime engine. Your clients simply install the package and start using your application. Additional software installation, such as the Java Runtime Environment (JRE), is not required on target systems.
The JET Optimizer transforms Java bytecode (.class/.jar files) into high performance native code on the developer’s system before program execution. The resulting optimized executables run directly on the hardware.
The Optimizer employs various optimization techniques commonly used in traditional C/C++ or FORTRAN compilers. To resolve Java performance challenges, the JET Optimizer is powered by state-of-the-art optimizations such as inlining virtual calls, safe removal of ubiquitous synchronization and allocating objects on the stack.
The Optimizer comes with the JET Control Panel, a graphical wizard that lets you quickly set up a project file and convert your application’s classes into the highly optimized executable (see Chapter JET Control Panel.)
The JET Runtime is a complete Java Virtual Machine (JVM). In particular, it includes a just-in-time (JIT) compiler to load and run Java class files. The key difference from other JVMs is that the JET Runtime can work with both Java classes and native executables produced by the JET Optimizer. For example, a JET-compiled application will be able to load Java plug-ins supplied in the form of jar files.
If your program uses plug-ins, loading them with the JIT compiler may take some time. To reduce the overhead, you may enable JIT caching in the JET Runtime. As a result, the native code produced by the JIT compiler will be retained in the JIT cache and reused on subsequent launches of the application. See Chapter Mixed Compilation Model for details.
To facilitate rapid creation of installation packages, Excelsior JET includes JetPackII, yet another graphical wizard. Using it, you prepare an installation package including your optimized Java application and the JET Runtime.
The deployment procedure is as simple as possible. You specify the JET-compiled application(s) and other files to be deployed, edit few settings, and the JetPackII generates a self-extracting installation executable, automatically including the JET runtime.
The installation executable is powered by the bundled Excelsior Installer that features both unattended and interactive installations.
In the interactive mode, the installer guides the users through the installation process allowing them to specify installation settings as usual. You can customize the installer to show an installation splash screen, end-user license agreement and to display installation interface in the English, German, French, Spanish, Polish, Russian or Japanese languages, depending on your choice or the system locale settings. Moreover, you can brand the installer using your own logos and wordings.
JetPackII can also prepare the resulting package in the form of self-contained directory that can be just copied to target systems. It contains the clickable application’s executable that requires neither extra environment settings, such as PATH, nor additional software installation, such as JRE. You can easily integrate such package into any setup generator or run the application off a USB flash drive without installation.
Please refer to Chapter Deployment automation for more details on the JetPackII and Excelsior Installer tools.
This release introduces a brand-new deployment technique called Java Runtime Slim-Down that enables you to significantly reduce both download size and disk footprint of your Java SE applications.
Major improvements are higher performance of the optimized Java applications and usability enhancements of the Excelsior JET toolchain.
With the newly introduced Java Runtime Slim-Down deployment, the size of a complete installation package powered by Excelsior Installer can be reduced to:
Note that these figures may vary depending on the size of application’s resources such as images and media files.
The size reduction can be achieved by excluding unused components of the Java SE API from the installation and placing them on a web server for on-demand download. This also helps you significantly reduce disk footprint of the installed applications.
The necessary support for Java Runtime Slim-Down is added to the JetPackII graphical tool (see Selecting detached components) and the JET Runtime. For more details, refer to Chapter Java Runtime Slim-Down.
Note: Java Runtime Slim-Down deployment is not available in the Standard Edition of Excelsior JET.
This release delivers a major performance increase over previous versions thanks to the enhancements in the JET Optimizer and Runtime:
As measured with two standard benchmark suites (SciMark2 and SPEC JVM98), the composite scores have improved by a factor of 1.7
The multiple files that the JET Optimizer creates and uses on the developer machine during compilation are now automatically placed into a few zip archives which form Project Data Base (PDB).
When optimizing large Java applications, PDB reduces the workload on the local file system and decreases compilation time. For details, see Project Data Base.
In addition, the availability of PDB for each compiled project simplifies the creating of multi-component applications as described in section Multi-component applications.
streamlines the process of optimizing Java applications and packaging them for deployment with Excelsior JET.
You can find the IDEA Integration plug-in in the ideplugins/IDEA subdirectory of your Excelsior JET installation. For more information, visit
When adding files to the installation package, you can now drag files from other applications, such as Windows Explorer, and drop them onto the Package Files panel of JetPackII. In previous versions, drag-and-drop was supported only for the file chooser built in JetPackII.
Both JET Control Panel and JetPackII now allows you to quickly open any of recently created projects (see Opening a project and Opening a project for details.)
Start-up time of applications compiled with the Global Optimizer is improved by approx. 30%. The optimized applications now takes 2 to 4 MB less memory.
The size of update packages for installations including executables built with the Global Optimizer is reduced by approx. 5MB
Excelsior unInstaller can be configured to remove all files from the installation folder including those created by the application after installation.
When preparing the installation package, you can set this option using the JetPackII tool (see Extra facilities.)
Java SE 5.0 Update 11 is included by default. J2SE 1.4.2 is no longer supported.
Thanks to all Excelsior JET community members who gave us feedback on the previous versions of our product.