Excelsior JET User’s Guide
Table Of Contents
00
00
00
0000000000000000000000
Overview
Excelsior JET at a glance
Established features
JET Optimizer
JET Runtime
Installation Toolkit
What is new in Excelsior JET 4.5
Installation and setup
System requirements
Installation
Profiles
Updates
Update installation
Update management
Cleaning up backed up configurations
JET Setup options summary
Excelsior JET Launcher
Creating a new project
Opening an existing project
JET Control Panel
Before you begin
Starting Excelsior JET Control Panel
JET Control Panel overview
Working with projects
Creating a new project
Opening a project
Saving a project
Saving a project under a different name
Step 1: Describing an application
Description form
Manual setting
Step 2: Performing a test run
Why is it?
Step 3: Selecting a compilation mode
Optimization presets
Classpath grid
Global Optimizer
Inconsistency warnings
Class viewer
Step 4: Setting options
Optimizations
Memory Management
JIT compiler
Advanced settings
Step 5: Specifying target settings
Executable name and project location
Runtime selection
Creating trial versions
Stack trace support
Step 6: Selecting application appearance
Splash screen
Step 7: Compiling your application
Building the executable
Creating build script
Packaging your application
Remedying project consistency flaws
Correcting build errors
Bugs in the JET Optimizer
Deployment automation
Intro
Excelsior deployment technology
JetPackII
Excelsior Installation Toolkit
Before You Start
Starting JetPackII
JetPackII Overview
Working With Projects
Creating a new project
Opening a project
Saving a project
Saving a project with a different name
Package Files Panel
Step 1: Creating A New Package
Creating a new installation
Creating an update
Step 2: Adding Application Files
Adding files to the installation
Packaging JIT cache
Caching of JITed classes on enduser system
Step 3: Setting Up Separate Resources and Java System Properties
Setting the classpath entries
Editing Java properties
Step 4: Selecting Optional JET Runtime Components
Step 5: Performing a Trial Run
Selecting a trial run directory
Working with trial run configurations
Configuring a trial run
Performing all trial runs
Troubleshooting
Skipping trial runs
Step 6: Selecting a Back-End
Excelsior Installer setup
Self-contained directory
Installation into multiple directories
Step 7: Specifying Installation Settings
Vendor information
Installation directory
Installer appearance
Extra facilities
Step 8: Specifying Installation Settings Of Windows Services
Step 9: Creating The Installation Package
Packaging native methods libraries
Installations protected by license managers
Relocation of JetPackII projects
Applicability of Update Packages
Deployment Utilities
xpack
xbind
Excelsior Installer
Installer
Uninstaller
Callback shared libraries
Application considerations
Runtime Selection
Available runtimes
Which runtime fits best for my application?
How to enable a particular runtime
Code performance
Scalability
Multiprocessor systems
Number of threads
Java system properties
How to set system properties
JET runtime properties
Memory management
GC ratio
Maximum heap size
Handling low memory
Parallel hardware
Creating trial versions
Application appearance
Splash screen
Stack trace
How to enable stack trace
How to disable stack trace
Assertions
Resource packing
Resource packing modes
Setting resource packing options in the JET Control Panel
Setting resource packing options manually
Character encodings
Intellectual property protection
Bytecode consistency checks
Baseline compilation
Mixed Compilation Model
Overview
Quick start
When the mixed model operates
When JET Runtime uses MCM
When you may use MCM
Using the mixed model
JIT compiler selection
Caching JIT’ed code
Reflective shield
JIT cache optimization
Challenges
The solution
How to optimize a JIT cache
Incremental fusion
xjava launcher
Synopsis
Options
JIT cache optimization with xjava
Usage example
JIT compiler and code protection
Dynamic linking
Intro
Invocation shared libraries
Multi-component applications
Building multi-component applications
Using multiple components
Global Optimizer
Introduction
Application domain
How it works
Global optimizations
Code mixing
Dynamic compilation
Code protection
Using the Global Optimizer
Overview
Performing test run
Enabling the Global Optimizer
Deployment
JC reference
Configuring the compiler
System search paths
Portable filename notation
Working configuration
Directory hierarchies
Redirection file
Options
Configuration file
Compiler memory usage
Invoking the compiler
Precedence of compiler options
Compiler operation modes
MAKE mode
PROJECT mode
OPTIONS submode
EQUATIONS submode
HELP mode
Files generated during compilation
Make strategy
Control file preprocessing
Project files
The !classpathentry directive
The !module directive
The !batch directive
Compiler options and equations
Options
Options reference
COMPILEWITHFIXEDHEAP - Use baseline compiler if there is not enough memory
GLOBAL - Turns on the global optimizer
DISABLECLASSSAVING - Disable caching of JIT-compiled class files
DISABLESTACKTRACE - Disable support for stack trace
GENDLL - Generate a shared library
GENEXTENDEDFP - Allow 80-bit format for intermediate FP values
GENSTACKALLOC - Generate code with stack allocated objects
GENSTACKTRACE - Generate stack trace data
GUI - Suppress console window
IGNORECLASSDUPLICATION - ignore duplicated classes
IGNOREMEMBERABSENCE - ignore usage of absent members
INLINE - Enable in-line method expansion
NOFF - Suppress notices messages
VERIFYALL - Force strict verification
WOFF - Suppress warning messages
Equations
Equations reference
OPTIMIZE - Optimization mode
PROTECT - Code protection mode
PACK - JAR deployment mode
CLASSABSENCE - Treatment of import of absent classes
COMPILERHEAP - Heap limit of the compiler
DECOR - Control of compiler messages
DLLNAME - DLL name
ERRFMT - Error message format
ERRLIM - Maximum number of errors
EXPIRE - expiration date
EXPIREMSG - expiration message
SPLASHCLOSEONTITLE - splash auto hide mode
HEAPLIMIT - Generated program heap limit
IMAGEBASE - Executable image base
INLINELIMIT - Maximum size of inlineable method
INLINETOLIMIT - Maximum size of inlined-to method
JETVMPROP - Hard-wired system properties
JETRT - JET runtime flavor
LINK - Linker command line
LOOKUP - Lookup directive
MAIN - Sets main class of application
OUTPUTDIR - pathname of the target directory
OUTPUTNAME - resulting executable name
PRJ - Project file name
PROJECT - Project name
STACKLIMIT - Generated program stack limit
SPLASH - splash screen image
SPLASHCLOSEONTITLE - splash auto hide mode
SPLASHMINTIME - splash delay
TEMPLATE - linker response file template
Internal options and equations
Compiler messages
Java bytecode front-end errors and warnings
Project system errors
Symbol files read/write errors
Warnings
Native back-end warnings
Native back-end errors
Internal errors
Troubleshooting
Compilation problems
Run-time problems
Application performance
Interoperability
Deployment
Customizing the compiler
Customizing compiler messages
Error message format specification
Regular expression
Template files
Using equation values
File name construction
Iterators
Examples