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.0
Installation and setup
System requirements
Installation
Profiles
Profile management
Creating a profile
Compilation
Updates
Update installation
Update management
Cleaning up backed up configurations
The 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: Creating a new project
Selecting target executable type
Choosing application description source
Step 2: Retrieving application description
Source: JVM command line
Source: batch file
Step 3: Selecting classes to compile
Working with classpath entries
Composing a compilation set
Specifying the main class
Import scanner
Project inconsistencies
Statistics
Step 4: Including resources
Working with program’s resources
Application appearance
Step 5: Setting options
Optimizations
Memory Management
JIT compiler
Advanced settings
Step 6: Specifying target settings
Executable file name and location
Runtime selection
System properties
Stack trace support
Step 7: Compiling your application
Building the executable
Creating files for the command-line compiler
Remedying project consistency flaws
Correcting build errors
Packaging your application
JC tutorial
Simple applications
Command line parameters
Project files
File lookup and placement
Specifying input files
Packages
Dynamic loading
Dynamic link libraries
Understanding compiler messages
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 !module directive
The !batch directive
Internal directives
Compiler options and equations
Options
Options reference
BINDCLASSES - Pack class files into the executable
BINDRESOURCES - Pack resources into the executable
DISABLECLASSSAVING - Disable caching of JIT-compiled class files
DISABLESTACKTRACE - Disable support for stack trace
GENDLL - Generate a DLL
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
IGNORECLASSABSENCE - ignore import of absent classes
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
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
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
OUTPUTNAME - resutling executable name
PRJ - Project file name
PROJECT - Project name
SERVICEMAIN - Windows service main class
SERVICENAME - System name of the service
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
STANDALONERESOURCES - list of jar/zip files and directories
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
Application considerations
Runtime Selection
Available runtimes
Which runtime fits best for my application?
How do I 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
Application appearance
Icon
Console window
Splash screen
Stack trace
How to enable stack trace
How to disable stack trace
Assertions
Resource packing
Character encodings
Intellectual property protection
Bytecode consistency checks
Baseline compilation
Dynamic linking
Intro
Invocation DLLs
Multi-component applications
Building multi-component applications
Using multiple components
Optimizing layout of DLLs in memory
Windows NT services
Windows services overview
Excelsior WinService API
Overview
Retrieving command-line arguments
Setting timeouts
Event logging
Exceptions in handler methods
Building a service program
Service installation and removal
Installing a service
Response file
Removing a service
Service deployment
Executable image optimization
Introduction
System requirements
Optimization step by step
Step 1. Relink the executable in “sparse” mode
Step 2. Profile your application
Step 3. Generate optimal link information
Step 4. Create the optimized executable
Advanced techniques
Optimization of multi-component applications
Mixing results of multiple profiling runs
Reuse of optimized link information file
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
Deployment Automation
Excelsior deployment technology
Intro
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 package
Creating an update
Step 2: Adding Application Files
Adding files to the installation
Step 3: Setting Up Standalone Resources and Java System Properties
Setting the classpath
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
Back-ends
Step 7: Specifying Installation Settings
Step 8: Specifying Installation Settings Of NT Services
Step 9: Creating The Installation Package
Relocation of JetPackII projects
Deployment Utilities
jpiib
xpackage
xbind
Excelsior Installer
Installer
Uninstaller
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