绪论:
由于开发windows下的exe需要依赖java环境,java运行环境即jre如果是没裁剪的话很大有100M多,大部分的class和dll都用不到,所以发布windows下的项目裁剪jre是很必要的、
之所以没有一个统一的精简的jre是因为每个应用的依赖的class都不一样。
下面呢我们就来裁剪jre
思路:
①.保留bin和lib目录,其余的都删掉
②.bin在运行exe文件时删除bin下所有文件、不能删的会提示你、
③.精简rt.jar这个就占了整个jre的一半精简它是很有必要的、
工具 :
360解压缩工具,和cutjre.exe工具
工具下载:http://download.csdn.net/detail/pzhtpf/3878285
裁剪
1.裁剪lib:
注意环境不能有其他的jre,或者环境变量里面注册的jre,最好是到虚拟机没有jre环境下执行
运行exe文件,选中bin下面的所有文件,并删除、注意保留java.exe
剩下的文件如下图所示:
然后client里面的只留下了jvm.dll,
这样bin目录就少了一大半,只剩下3.8M
2.裁剪lib目录
裁剪lib目录就要使用工具了、通过菜单找到jar包
然后会生成很多目录包括
java , javax, sun ,jdk
可以试着把这些目录去替换jre中rt.jar中对应的目录(用360解压缩工具打开)
删掉其他的只留这些,其实还有个com目录你可以试着删除一下,我删了没影响。
然后用软件生成的对应的目录去替换这里对应的目录,不嫩替换就就打开该目录挨着挨着删、
只到打开程序报错、就恢复删除的文件、循环一直重复、
这样精简下来就5M多
3.然后是lib下其它目录
也是挨着删,每次删除都打开exe看能否执行、重复操作。
最后就完成了精简jre的目的、最后文件就17M多点、
特别注意:由于exe打包工具的原因jar文件能运行的jre环境,exe不一定能运行,所以我们应该用exe来测试,每次删除文件就测试exe的所有功能是否正常。而且不要用bat来测试,因为bat的运行目录不一样导致bat会使用windows环境变量的jre导致最后功亏一篑。