Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reducing size of JRE

Tags:

java

jvm

We bundle the Java 6 JRE with our application installer so that it can be run on any machine, but this makes the application a little bit heavier. So we are planning to reduce the size of the JRE. If anyone has done this sort of task, can you please provide guidance to move forward with this?

like image 223
asela38 Avatar asked Dec 08 '10 12:12

asela38


1 Answers

Look at the README file in the JRE directory. The 'Optional Files and Directories' section lists a number of files that can be removed from the Oracle/Sun JRE if you are packaging it with your application.

I use an Ant buildfile to copy the JRE from the system install location to the package directory when creating an installation. Put the list of files you want excluded in a separate file and use the 'excludesfile' attribute to load this list:

<copy todir="${deployed_jre_dir}">   <fileset dir="${system_jre_dir}" excludesfile="jre_excludes.properties"  </copy> 

Sample jre_excludes.properties file:

# per the README from the JRE, these files are for the browser plugin and are not needed otherwise #bin/javaw.exe bin/javaws.exe bin/javacpl.exe bin/jucheck.exe bin/jusched.exe bin/wsdetect.dll bin/NPJPI*.dll bin/NPJava* bin/NPOJI610.dll bin/RegUtils.dll bin/axbridge.dll bin/deploy.dll bin/jpicom.dll bin/javacpl.cpl bin/jpiexp.dll bin/jpinscp.dll bin/jpioji.dll bin/jpishare.dll lib/deploy.jar lib/plugin.jar lib/javaws.jar lib/javaws/messages* lib/javaws/miniSplash.jpg bin/new_plugin** bin/jureg* bin/ssv* bin/jqs* bin/jp2* lib/deploy/**/*  # if you do not need any RMI stuff # wildcard to catch .exe files on Windows # note rmi.dll is not excluded, which is needed by jconsole; add rmi.dll if you do not need jsonsole bin/jbroker* bin/java-rmi* bin/rmid* bin/rmiregistry* bin/tnameserv* bin/orbd* bin/servertool*  # do not include QuickTime # this will be in the jre dir for machines that have QT installed lib/ext/QTJava.zip 
like image 163
AngerClown Avatar answered Sep 19 '22 13:09

AngerClown