Excelsior JET comes preconfigured for one of the recent Java SE versions, such as 1.6.0_03 (Java SE 6 Update 3.) /This is a microversion of the latest major Java version which compliance test suite (JCK) Excelsior JET has passed./ If your application can be run successfully on that particular version of the Sun JRE 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.
The system requirements for Excelsior JET itself are as follows:
| CPU: | Intel Pentium III or compatible at 800 MHz or higher |
| RAM: | 384 MB minimum, 512 MB or more recommended |
| Disk space: | 420 MB minimum |
| Note: Creation of a new profile requires up to 650MB 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: | kernel 2.4.x or 2.6.x glibc 2.2.5 or above LinuxThreads 0.9 (or above) or NPTL 0.29 (or above) X11 and xterm are required by graphical tools. xterm must be reachable via the command search path. |
The system requirements for applications compiled by Excelsior JET are as follows:
| CPU: | IA-32 (Pentium Pro and above) or compatibles |
| RAM: | Most applications will need the same or somewhat lower amount of RAM as if run on the Sun JRE |
| Disk space: | A binary executable created by Excelsior JET in the default mode will occupy 2-4 times more disk space than the original jar file. It also requires the Excelsior JET Runtime (set of shared libraries and data files) to run, but does not require the Sun JRE. |
| Display: | Same requirements as if run on the Sun JRE |
| Network: | If you deploy the optimized applications using the Java Runtime Slim-Down model, target systems must have Internet/Intranet connection for possible download of the detached package. For more details, see Chapter Java Runtime Slim-Down. |
| Operating system: | Excelsior JET 6.4 for Linux has passed Java SE 6 and J2SE 5.0 compliance tests on the following Linux distributions:
|
In general, the compiled applications require the following system libraries:
|
Note: Excelsior provides full Technical Support Service for Excelsior JET on RedHat Enterprise Linux 3.0, RedHat Enterprise Linux 4.0, RedHat Enterprise Linux 5.0, and SUSE Linux Enterprise Linux 9.0 under the terms of available Support Contracts.
Providing support services for other Linux flavors is at discretion of Excelsior and may require an additional consultancy agreement. For more information, contact Excelsior Support Service department at
support@excelsior-usa.com
Excelsior JET has been certified for compliance with the specification of the Java platform, Standard Edition 6 and 5.0, and contains licensed code of these versions of the Java SE platform API.
Excelsior JET for Linux is distributed as a self-extracted ZIP archive. To install it, change the working directory to /usr/local or another location of your choice and run the .bin file you have downloaded or received on CD:
chmod a+x ~/downloads/jet-500-pro-en-linux.bin
cd /usr/local
~/downloads/jet-500-pro-en-linux.bin
It 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 a subdirectory named in accordance with product version and edition, e.g. ./jet5.0-pro.
Now you need to set up the environment. Suppose you have unpacked JET into the directory JET-home. The directory JET-home/lib/x86/shared must be listed in the LD_LIBRARY_PATH environment variable, and JET-home/bin in the PATH environment variable.
For instance, if you are using bash or Bourne shell, use the following commands:
export PATH=JET-home/bin:$PATH
export LD_LIBRARY_PATH=\
JET-home/lib/x86/shared:$LD_LIBRARY_PATH
There is a bash script in the Excelsior JET installation directory that you can use to set these variables:
cd /usr/local/jet5.0-pro
source setenv
Note you have to run the script as source setenv (can be abbreviated as <dot><space>setenv) so that it affects the current shell.
Run the command
jetsetup -show-profiles
If your application works fine on the version of the Sun JRE indicated in the existing profile, you are done with setup and can begin optimizing your application
Otherwise, use JET Setup to create a new profile.
A profile is the set of Excelsior JET Runtime files /shared libraries with precompiled platform API classes, shared libraries with native methods, resource files, etc./ for the given Java SE version and the given set of jars overriding endorsed standards. 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 your applications’ requirements. New profiles are based on any of Java SE microversions supported by Excelsior JET. The list of supported microversions is displayed by JET Setup when you start creating a new profile. Typically, the just released Excelsior JET supports only one Java SE microversion. As new Java SE updates are released by Sun Microsystems, Excelsior provides updates for JET that add support for these Java SE microversions. Visit Excelsior’s Web site to check what versions are currently supported.
Creation of a new profile includes precompiling of Java platform classes for a particular Java SE microversion into a set of shared libraries. It is important to note that if your application relies on the Endorsed Standards Override Mechanism, the overriding classes have to be precompiled instead of their counterparts shipped with the Java platform.
To display the list of available profiles, execute the following command:
jetsetup -show-profiles
The output will look as follows:
Please wait... The following profiles were found by JET Setup: 0: profile1.6.0_03 Profile status: Active Java SE: 1.6.0_03
Each item in the list of profiles contains a profile index and name, a status tag, and the names of jar files that contain classes overriding endorsed standards, if any were specified during profile creation.
Profile names are based on respective Java SE version numbers, for example name “1.6.0_03 (2)” means that the profile is based on Java SE 6 Update 3.
Status tags have the following meanings:
To create a new profile, run the jetsetup utility as follows:
jetsetup -create-profile supported-java-se-version [options]
where supported-java-se-version is the exact Java SE version on which the profile will be based, for instance:
jetsetup -create-profile 1.6.0_03
To find out which Java SE microversions are supported by your Excelsior JET installation, run jetsetup without parameters.
To specify classes overriding endorsed standards, use one of the following options:
-endorsed-dirs dir-list
dir-list is a colon-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 colon-separated list of jar files overriding endorsed standards. Ignored if the option -create-profile is not specified.
JET Setup will display output similar to the following:
Please wait...
Compiling Java SE API classes. Please stand by...
Please wait while JET Setup prepares for compilation
. . .
The process of compilation can take from 30 minutes to several hours, depending on your system configuration. In the end JET Setup should report that the new profile was successfully created.
To change the active profile, run jetsetup as follows:
jetsetup -activate-profile index
where index is the numerical index of the desired profile in the list displayed by the command “jetsetup -show-profiles”.
To refresh an outdated profile, run jetsetup as follows:
jetsetup -refresh-profile index
where index is the numerical index of the profile you want to refresh in the list displayed by the command “jetsetup -show-profiles”.
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, run jetsetup as follows:
jetsetup -repair-profile index
where index is the numerical index of the profile you want to repair in the list displayed by the command “jetsetup -show-profiles”.
To remove a profile you no longer need, run jetsetup as follows:
jetsetup -remove-profile index
where index is the numerical index of the profile you want to remove in the list displayed by the command “jetsetup -show-profiles”.
Excelsior periodically issues updates to the Excelsior JET product which fix bugs, add support for the latest Java SE microversions and 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 the 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.
An update is distributed as an executable file. When run, it prompts you for 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. After applying such an update use, use JET Setup to refresh the Outdated profiles or create new ones as described in Profiles. If you need to install several updates, e.g. a Maintenance Pack and a hotfix issued after that Maintenance Pack, first install them all and then run JET Setup to refresh or create profiles.
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:
jetsetup -show-updates
jetsetup -switch-to-update index
jetsetup -show-profiles
If an Excelsior support engineer has advised you to select a particular combination of updates, do the following:
jetsetup -show-updates
jetsetup -activate-update list
where list is a colon-separated list of update names.
jetsetup -show-profiles
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 the jetsetup tool as follows:
jetsetup -cleanup-backup
On Linux, JET Setup is only available as a command-line utility. To access JET Setup functionality from the command line, invoke the jetsetup utility with one or more of the following options:
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 -create-profile 1.6.0_03
dir-list is a colon-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.
dir-list is a colon-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.
Activates the profile denoted by index in the list of profiles. The profile must have Ready status.
If the status of the profile denoted by index in the list of profiles is Outdated, refreshes it.
If the status of the profile denoted by index in the list of profiles is Damaged, repairs it.
Removes the profile denoted by index in the list of profiles.
Displays the list of installed and applied updates.
Activates the updates denoted by update-names, which is a colon-separated list of update names.
Reverts to the configuration of updates denoted by index in the list of applied updates.
Cleans up the backup directory.
Displays JET Setup version.
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.