Excelsior JET Early Access Downloads

The following early access downloads are available for Excelsior JET:

Disclaimer: The above downloads are not generally available software, but early access builds that are not intended for production use and will expire 90 days after installation. The optimized applications will expire too.

See also the Excelsior Beta Software License Agreement.

Incremental (a.k.a. Smart) Compilation AMD64

The 64-bit Excelsior JET compiler no longer wastes time recompiling jars that were not changed since the previous build.

Incremental compilation is enabled by default. There is no need to change your project files. Just re-build your project with the beta and the next build will be incremental.

Important The =a/=all mode of the jc command-line compiler forces full compilation. If you have any build scripts or aliases invoking jc, you may want to check if that mode is used.

Also, make sure to read the Known Issues section below.

Improved Application Performance

Application performance has improved on two fronts across all target architectures:

  • New optimizations help the AOT compiler yield better code, especially when combined with PGO.
  • Optimizations of memory management and synchronization in the runtime engine for better CPU utilization and increased throughput on many-core servers and cloud instances.

Java Version Support

Excelsior JET 15.0 beta 1 supports Java SE 8 Update 144 (1.8.0_144) out-of-the-box.

Known Issues

  • As of beta 1, it is not possible to place the incremental compiler cache outside the build directory. As a result, Maven and Gradle would remove that cache when executing their clean phase/task, effectively forcing a full build. This will be fixed in the next versions of the respective plugins.
  • The Excelsior JET compiler command line in the build scripts generated by the JET Control Panel still includes the =a (=all) flag that forces a full build. If you are using those scripts, remove that flag manually to enable incremental compilation. This will be fixed in the final release.
  • The recently introduced new 64-bit JIT compiler generates much better code, but currently it does that at the expense of its own speed. We are well aware of this problem, but unfortunately have not had the time to mitigate it in this release, so the Test Run in 15.0 beta 1 is still slower compared to version 11.3.

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

To install Excelsior JET, simply launch the EXE file you have downloaded and follow the on-screen prompts.

Upon successful installation, the JET Setup program will be invoked automatically:

JET Setup Welcome Screen

The beta only supports the specific version of Java indicated in the Use default profile option. Unless your application relies on the (deprecated) Endorsed Standards Override Mechanism, simply click Finish.

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

Prerequisites

As of version 15.0, certain functions of Excelsior JET for OS X graphical tools require xterm. If you do not have xterm, install an X Window implementation such as XQuartz.

Installation

Excelsior JET for OS X is packaged as a command-line installer. This may change in future versions. To install it, do the following:

Launch Terminal.app.

Change the working directory to the file system location under which you want to install Excelsior JET, such as /usr/local, and launch the binary that you have downloaded (you may need to change its permissions first). For instance:

$ cd /usr/local
$ chmod a+x ~/Downloads/jet-1500-beta1-en-osx-amd64.bin
$ ~/Downloads/jet-1500-beta1-en-osx-amd64.bin

The installer will invoke the more utility to display the license agreement. After you page through it, the following message shall display:

Do you agree to the above license terms? [yes or no]

Type "yes" and hit Enter to accept the license and the installer will unpack the product files into ./jet15.0-beta1.

Now, suppose the full path to that directory is JET-home. You may optionally add the subdirectory JET-home/bin to the PATH environment variable. For instance, if you are using bash, either use the following command:

$ export PATH=JET-home/bin:$PATH

or run the setenv script located in the Excelsior JET installation directory:

$ cd JET-home
$ source setenv

Notice Make sure to run it as source setenv (can be abbreviated as . setenv) so that it affects the current shell.

To install Excelsior JET for Linux, do the following:

In a terminal window, change the working directory to the file system location under which you want to install Excelsior JET, such as /usr/local, and launch the .bin file you have downloaded (you may need to change its permissions first). For instance:

$ cd /usr/local
$ chmod a+x ~/Downloads/jet-1500-beta1-en-linux-x86.bin
$ ~/Downloads/jet-1500-beta1-en-linux-x86.bin

The installer will invoke the more utility to display the license agreement. After you page through it, the following message shall display:

Do you agree to the above license terms? [yes or no]

Type "yes" and hit Enter to accept the license and the installer will unpack the product files into ./jet15.0-beta1-x86 or ./jet15.0-beta1-amd64.

You may optionally add the bin/ subdirectory of your Excelsior JET installation to the PATH environment variable. For instance, if you are using bash or Bourne shell, either issue the following command:

$ export PATH=JET-home/bin:$PATH

or run the setenv script located in the Excelsior JET installation directory:

$ cd JET-home
$ source setenv

Notice Make sure to run it as source setenv (can be abbreviated as . setenv) so that it affects the current shell.

If you abstain from reading product manuals, here are some shortcuts.

First of all, if you are using Maven or Gradle, look no further than the Excelsior JET Maven plugin or Excelsior JET Gradle plugin, respectively.

Otherwise, to compile an Eclipse RCP application or a Tomcat Web application, invoke the JET Control Panel. Show me how

Windows: select JET Control Panel from Excelsior JET Start Menu.

OS X/Linux: type

$ jetcp

at the command prompt and press Enter.

On the Welcome Screen, click the respective item:

Eclipse/Tomcat app

and follow the on-screen prompts.

To compile a plain Java application that can be run with the java launcher, do the following:

  1. Identify the command line that runs your application on the conventional JRE, e.g.

    java -Xmx256m -Dfoo="bar" -jar MyApp.jar

    If your app is run by a shell script, create a copy of that script, open it in a text editor, and find the java command launching your application.

    If you use an IDE, such as IntelliJ IDEA, Eclipse, or NetBeans, the java launcher command line is typically displayed at the top of a Run window that appears when you start your application from within the IDE. You may select it and copy to clipboard.

  2. Locate the Excelsior JET Launcher under the current profile directory, and determine its full pathname, for instance:

    JET-home/profile1.8.0_144/jre/bin/java

  3. Replace the pathname of the standard java launcher with the above pathname in the command line you identified on step 1, and execute the resulting command (or the modified shell script.)

    This will bring up a dialog displaying the application's working directory and command line:

    JET Launcher Form

  4. Click Proceed to create a new project and open it in the JET Control Panel.

We did our best to make the following steps obvious to a person used to not read product manuals. :)

As you may see, the Excelsior JET Launcher has the same command line interface as the standard java launcher, but instead of running your application right away, it collects the information about its launch time configuration, such as classpath, main class, working directory, heap size, system properties, etc., and passes them to the JET Control Panel so that you could adjust those and other settings.

This is the fastest way to begin using Excelsior JET for the optimization of your application and also the easiest way to set up a project if your Java application is started via a complex script file.

System Requirements

Developer System Where Excelsior JET is installed

CPU: x86 (Intel Pentium 4 or compatible) at 1.3 GHz or higher; or
x64 (AMD64/Intel 64 or compatible)
RAM: x86: 2 GB minimum, 3 GB or more recommended
x64: min 4GB available physical memory
Disk Space: 1.5GB minimum
Note: Creation of a new profile requires up to 750MB extra for temporary use.
O/S:

Microsoft Windows 10, 8.x, 7, Server 2012, or Server 2008 R2

OS X:

  • OS X 10.8, 10.9, or 10.10
  • Graphical tools require X11 and xterm
  • xterm must be reachable via the command search path

Linux:

  • kernel 2.6.32 or above
  • glibc 2.12 or above
  • Graphical tools require X11 and xterm
  • xterm must be reachable via the command search path

Enduser System Where compiled apps run

CPU: 32‑bit: Intel IA-32 (Pentium 4 and above) or compatible, with SSE2 support
64‑bit: Any x64 (AMD64/Intel 64) or compatible
RAM:

32‑bit: As if run on the Oracle JRE, or somewhat less.

64‑bit: Applications may need more memory than if run on the 64‑bit Oracle JRE with compressed 64-bit oops enabled

Disk Space: Less than the original jars and the Oracle JRE together, even when the compact profiles and disk footprint reduction features are not used.
Display: As when running the app on the Oracle JRE
O/S:

64‑bit executables require a 64‑bit O/S

Microsoft Windows 10, 8.x, 7 SP1, Server 2012, Server 2008 R2 SP1

OS X 10.8, 10.9, or 10.10

Linux:

  • kernel 2.6.32 or above
  • glibc 2.12 or above
  • 32‑bit executables require installation of 32‑bit libraries on 64‑bit systems
JRE: Not required