减小JRE的大小

我们将Java 6 JRE与我们的应用程序安装程序捆绑在一起,以便它可以在任何机器上运行,但这会使应用程序变得更重一些。 所以我们计划减少JRE的规模。 如果有人做过这类任务,你能否提供指导以推进这项工作?

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

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

  

示例jre_excludes.properties文件:

 # 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 

一些更新信息:从java 8开始,有一个名为jrecreate的官方Oracle工具,用于创建小型嵌入式JRE包。

您是否正在尝试降低标准JRE的大小? 不要那样做。 您可以选择捆绑可能更小的备用JRE。 列表可以在这个维基百科页面上找到。 一如既往,请注意兼容性问题并彻底测试您的应用程序。

另一种更安全的方法是只需要在目标机器上安装JRE。

对于我的Java 8 Update 144桌面应用程序,我排除了两个大的Java FX文件:

  bin/jfxwebkit.dll // ~34 MB unpacked lib/ext/jfxrt.jar // ~17 MB unpacked 

压缩的jre是49 MB而不是66 MB。

对我来说,这是在减小的大小和增加的构建复杂性(和潜在的错误)之间的可接受的权衡。