Excelsior Logo Excelsior Logo
Company Products Services Resources Contact
Store Buy    Download Download    Support Support    Forum  Forum    Blog  Blog   
Search
 Search   
Sitemap
 Sitemap   
Request a Call  Request a Call   

Download size reduction for Java applications

Excelsior JET solution

Java Runtime Slim-Down is a new deployment model for Java SE applications that delivers a significant reduction of the download size and disk footprint. Implemented in Excelsior JET, a certified JVM with AOT compilation, Java Runtime Slim-Down has proved its effectiveness for many desktop Java applications.

The table below shows download size and disk footprint figures for a few sample applications optimized using Java Runtime Slim-Down, and for the respective version of the Sun JRE.

Note: The JRE figures are included for reference, the JRE needs not be installed on end user systems to run these Java applications.

Application GUI toolkit Download
Size
Disk
Footprint
Description
JavaCC none 3.9 MB 13.1 MB The most popular parser generator for use with Java
SWTDemo SWT 4.6 MB 14.4 MB Sample program taken from Eclipse SDK, illustrates common Standard Widget Toolkit (SWT) controls
jEdit Swing 8.7 MB Popular cross platform text editor
RSSOwl SWT+Java2D 9.4 MB 33.4 MB Popular RSS/RDF/Atom Newsreader
PowerFolder Swing 9.0 MB 29.1 MB Peer-to-peer tool to synchronize files between PCs in home-network, intranet or over the internet
TuxGuitar SWT+Java2D 9.5 MB 31.1 MB Multitrack guitar tablature editor and player. Check it with this evergreen opus. It will rock you!
Sun JRE 5.0 Update 13 Swing 15.9 MB 69.6 MB Included for reference, not required to run the other applications.

Click a link in the "Download" column to download the installation package for Windows.

What is Java Runtime Slim-Down

The key idea behind Java Runtime Slim-Down is to select a few components of the Java SE API, which are not used by the application, and exclude them from the installation. For example, if your application does not use any of Swing, AWT, CORBA or, say, JNDI, Excelsior JET enables you to easily exclude (detach) the associated files from the installation.

Using Java Runtime Slim-Down includes three simple steps: compilation, packaging, and deployment.

Compilation

You run the Excelsior JET Optimizer that makes global (whole-program) analysis to figure out what Java SE components are not used by the application. Then, the Optimizer compiles application's bytecode and the used Java SE components down to native code and links them with the JET Runtime into a single executable.

Fig 1. Partitioning AOT compilation

The unused Java SE components are left intact in the bytecode form.

Packaging

Using the JET Installation Toolkit, you build two packages: the main installation package and the detached package that includes the unused components. You can wrap the main installation into Excelsior Installer bundled with Excelsior JET or use a setup generator of your choice.

Fig 2. Packaging

Deployment

You place the detached package on a Web server at the URL you assigned when creating the installation. Now you can ship the main installation to end users. Note that the JRE need not be installed on end users systems to run your Java applications.

The Web server that stores the detached package is considered a "safety net". That is, if the deployed application attempts to use any of the detached components, the JET Runtime will pull the package down from the server and load the requested Java classes.

It is however highly unlikely that a download of a detached package will occur in practice. The sample applications listed at the top of this page have been downloaded hundreds of times since we published them in May 2007, but there was not a single download of a detached package.

Fig 3. Deployment

As a result, your Java applications are wrapped into a nice small installer and they run without installation of additional software (JRE) on end user systems. That is exactly what a typical consumer expects when downloading software.

Try It Yourself!

Eager to try it for your Java applications?

  1. Download a fully functional evaluation copy
  2. Get familiar with Excelsior JET by following these getting started tutorials
  3. Optimize your app for download size reduction (see Excelsior JET 6.4 User's Guide, chapter "Java Runtime Slim-Down".)
You feedback and suggestions are very welcome.

Home | Company | Products | Services | Resources | Blog | Contact | Request a Call

Site: Search | Sitemap | Forum | Credits

© 1999-2008 Excelsior LLC. All Rights Reserved.