纯属个人研究实践,如需在实际应用中,裁剪jre需谨慎。
以下是裁剪步骤:
1、 安装jdk1.6(之所以要安装jdk,因为后面需要使用到jdk中一些工具)并拷贝一份jre至D盘中,删除除了bin和lib文件夹以外的文件,如下图所示:
如有需要,可以也保留一些license相关的文件。
2、 精简bin文件,删除除了“java.exe”,“javaws.exe”,“javaw.exe”外的所有exe文件和“client”中的“classes.jsa”文件,如图所示:
对于exe的介绍,可参照http://www.doc88.com/p-37461767299.html。至于dll文件,也可以删除,需要在了解各个dll基础上进行删减,可参照http://jarg.iteye.com/blog/860896。
3、 精简lib,删除lib中的文件,只剩下“ext”,“fonts”,“i386”,“charsets.jar”,“resources.jar”,“rt.jar”文件,如图所示:
4、 重新压缩“rt.jar”
a) 解压“rt.jar”,在lib中创建rt目录,运行cmd,在cmd中进入rt文件夹,通过jkd中的“jar”工具,执行“jar xvf ..\rt.jar”解压“rt.jar”至rt目录中(解压需要运行几分钟时间),如图所示:
b) 重新压缩“rt.jar”,执行“jar -cvfm rt.jar META-INF\MANIFEST.MF”创建文件并添加manifest文件和“jar -uvf rt.jar com java javax org sun sunw”将相关的文件更新到“rt.jar”中,最后覆盖外层“rt.jar”包,如图所示:
用“jar”重新压缩后,文件明显变小,比用“rar”进行重新压缩效果明显。可以根据需要,分析依赖性,选择需要压缩的包,参照http://jarg.iteye.com/blog/867960。
5、 同样的方式重新压缩“charsets.jar”。最后裁剪结果是,将86.2M的jre裁剪成38.9M的jre。
6、测试结果:
a)在eclipse中配置jre:
b)运行某一程序,执行结果:
转载于:https://blog.51cto.com/slive/1132248