减小 JRE 的大小

2022-01-16 00:00:00 jvm java

我们将 Java 6 JRE 与我们的应用程序安装程序捆绑在一起,以便它可以在任何机器上运行,但这会使应用程序更重一些.所以我们计划减小 JRE 的大小.如果有人做过此类任务,您能否提供指导以推进此任务?

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?

推荐答案

查看JRE目录下的README文件.如果您将 Oracle/Sun JRE 与应用程序打包在一起,则可选文件和目录"部分列出了可以从 Oracle/Sun JRE 中删除的一些文件.

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.

创建安装时,我使用 Ant 构建文件将 JRE 从系统安装位置复制到包目录.将要排除的文件列表放在单独的文件中,并使用excludesfile"属性加载此列表:

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>

示例 jre_excludes.properties 文件:

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

相关文章