精简java 1.6的jre

今天亲自测试精简jdk1.6.0_17版本的jre,步骤如下:

1. 拷贝一个完整版的jre文件夹到F:\项目集合\messagesend\jre6\

2. 删除jre目录下所有出bin和lib目录的所有文件或目录

3. 打开cmd窗口,设置path路径为空,转到F:\项目集合\messagesend\jre6\bin目录,运行java –version。正常显示当前Java的版本。

4. 在bin目录中新建一个temp目录,将除java.exe和java.dll外的移到temp目录中

5. 再次运行java –version命令,提示Error: no `client' JVM at `F:\项目集合\messagesend\jre6\bin\client\jvm.dll'.

6.将client文件夹拷贝出来,再次运行java –version命令,提示没找到verify.dll。将temp目录中的verify.dll移到bin目录中

7.再次运行java –version命令,Could not create the Java virtual machine.

8. 根据测试:还要将hpi.dll和zip.dll放到bin目录中

8. 再次运行java –version命令,OK,又出现了版本信息。此时,可以将temp目录移出bin目录中。(放到桌面先)

9. 删除client目录中的除jvm.dll外的文件。转到jre目录,查看bin目录的大小,为2.80MB。但此时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,未完,待续。

 

接上,开始需要检查我做的jar包中引用了哪些jre的class,写个批处理,内容如下:

@echo off
F:\项目集合\messagesend\jre6\bin\java -jar -verbose:class message-send.jar >>a.txt
pause

 

一看生成的a.txt,rt.jar和charsets.jar都用到了,看来都需要进行裁剪才行。

裁剪之后运行失败,看来还是不能乱裁剪啊,就这样吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值