裁剪JRE和遇到的坑、

    xiaoxiao2025-07-12  26

    绪论:

    由于开发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导致最后功亏一篑。

     

     

    最新回复(0)