我们将Java 6 JRE与我们的应用程序安装程序捆绑在一起,以便它可以在任何计算机上运行,但这会使应用程序变得更重一些。所以我们计划减少JRE的规模。如果有人做过这样的任务,你能否提供指导以推进这个任务?
答案 0 :(得分:24)
查看JRE目录中的README文件。 “可选文件和目录”部分列出了一些文件,如果您将其与应用程序打包在一起,可以从Oracle / Sun JRE中删除这些文件。
在创建安装时,我使用Ant构建文件将JRE从系统安装位置复制到包目录。将要排除的文件列表放在单独的文件中,并使用'excludesfile'属性加载此列表:
<copy todir="${deployed_jre_dir}">
<fileset dir="${system_jre_dir}" excludesfile="jre_excludes.properties"
</copy>
示例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
答案 1 :(得分:3)
一些更新信息:从java 8开始,有一个名为jrecreate的官方Oracle工具,用于创建小型嵌入式JRE包。
答案 2 :(得分:1)
您是否正在尝试降低标准JRE的尺寸?不要那样做。您可以选择捆绑可能更小的备用JRE。列表可以在this Wikipedia page上找到。与往常一样,要注意兼容性问题并彻底测试您的应用程序。
另一种更安全的方法是只需要在目标机器上安装JRE。
答案 3 :(得分:1)
对于我的Java 8 Update 144桌面应用程序,我排除了两个大的Java FX文件:
bin/jfxwebkit.dll // ~34 MB unpacked
lib/ext/jfxrt.jar // ~17 MB unpacked
压缩的jre是49 MB而不是66 MB。
对我而言,这是在缩小尺寸和增加构建复杂性(以及潜在错误)之间的可接受的权衡。