Jre裁剪

本文详细介绍了如何将标准的86.2M JRE裁剪至38.9M的过程,包括安装JDK、精简bin和lib文件、重新压缩rt.jar和charsets.jar等步骤,适用于希望减少JRE占用空间的开发者。

纯属个人研究实践,如需在实际应用中,裁剪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)运行某一程序,执行结果:

 

精简jre步骤 1. 拷贝一个完整版的jre文件夹到D盘 2. 删除jre目录下所有出bin和lib目录的所有文件或目录 3. 打开cmd窗口,设置path路径为空,转到D:\jre\bin目录,运行java –version。正常显示当前Java的版本。 4. 在bin目录中新建一个temp目录,将除java.exe和java.dll外的移到temp目录中 5. 再次运行java –version命令,提示没找到verify.dll。将temp目录中的verify.dll移到bin目录中 6. 再次运行 java –version命令,提示:Could not create the Java virtual machine.错误 7. 根据测试:还要将hpi.dll和zip.dll放到bin目录中 8. 再次运行java –version命令,OK,又出现了版本信息。此时,可以将temp目录移出bin目录中。(放到桌面先) 9. 删除client目录中的除jvm.dll外的文件。转到jre目录,查看bin目录的大小,为2.89MB。但此时lib目录仍有60M有余 10. 转到lib目录,新建一个temp目录,将i386除外的目录都移动到temp目录中,再次运行java –version命令,OK 11. 再新建一个temp2目录,将charsets.jar和rt.jar外的所有文件移动到temp2目录中,再次运行 Java –version命令,OK 12. 将temp2和temp目录移到桌面。此时lib仍有48.7M接近50M。(还得努力) 13. 缩减charsets.jar和rt.jar(使用7z工具可以查看和修改jar文件的内容『直接添加和删除』)。准备做个软件来实现。 14. 缩减原则。运行java -verbose:class -version > temp.java 命令,此时在bin目录下生成了一个temp.java文件,用EditPlus打开,看到没有,要加载的就是那些类了,把不需要的全部删除就是了。 15. 原来charsets.jar没有加载呀。直接删除,再次运行java –version命令,OK 16. 接下来的工作就是裁剪rt.jar了。慢慢来。也可以做个软件来完成。可以下载一个GreenJVMMake.jar来完成。不过有时候好像有些类没加载到。要考虑更新了。 17. 裁剪玩rt.jar后,再次运行java –version ,出现了版本信息。OK 18. 转到D盘查看一下精简的jre才4.47MB。不到5M。OK 19. 最小的jre制作完毕。 附带制作过程图片,可用Picasa来查看,播放模式效果更佳。 Thoams 2010-6-25 15:53
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值