Jvm 减小JRE的大小

Jvm 减小JRE的大小,jvm,java,Jvm,Java,我们将Java6JRE与我们的应用程序安装程序捆绑在一起,这样它就可以在任何机器上运行,但这会使应用程序有点重。因此,我们计划缩小JRE的规模。如果有人已经完成了这类任务,请您提供指导以推进这项工作?您正在尝试减少标准JRE的规模?不要那样做。您可以选择捆绑一个可能更小的替代JRE。可在上找到列表。一如既往,请注意兼容性问题,并彻底测试应用程序 另一种更安全的方法是只需要在目标机器上安装JRE。查看JRE目录中的自述文件。“可选文件和目录”部分列出了一些可以从Oracle/Sun JRE中删除的

我们将Java6JRE与我们的应用程序安装程序捆绑在一起,这样它就可以在任何机器上运行,但这会使应用程序有点重。因此,我们计划缩小JRE的规模。如果有人已经完成了这类任务,请您提供指导以推进这项工作?

您正在尝试减少标准JRE的规模?不要那样做。您可以选择捆绑一个可能更小的替代JRE。可在上找到列表。一如既往,请注意兼容性问题,并彻底测试应用程序


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

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

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

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

一些更新信息:由于java 8,有一个官方Oracle工具用于创建小型嵌入式JRE包。

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

   bin/jfxwebkit.dll // ~34 MB unpacked
   lib/ext/jfxrt.jar // ~17 MB unpacked
压缩的jre是49MB,而不是66MB


对我来说,这是缩小尺寸和增加构建复杂性(以及潜在的bug)之间可以接受的折衷。

在可选文件列表中,它说java.exe也是可选的。如果没有这个,我怎么能启动我的应用程序呢?你能分享你的jre吗?我认为java.exe是可选的,因为你可以使用javaw.exe。javaw可能是首选,因为它不打开控制台窗口。出于好奇,在我的64位Windows JRE6上执行此操作会将安装从97.7 MB(19.2 MB 7z压缩)降低到89.9 MB(17.9 MB 7z压缩),因此大约为-7%。是否有任何已删除的jre可选文件供我们下载。这可能会避免其他人一次又一次地重新发明轮子。。
   bin/jfxwebkit.dll // ~34 MB unpacked
   lib/ext/jfxrt.jar // ~17 MB unpacked