您的位置:首页 > 编程语言 > Java开发

精简java 1.6的jre

2013-11-12 18:52 344 查看
今天亲自测试精简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都用到了,看来都需要进行裁剪才行。

裁剪之后运行失败,看来还是不能乱裁剪啊,就这样吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: