最近做个了java的桌面应用程序,可打包发布后才发现要带一个将近100M的jre,使程序显得过于臃肿,当务之急就是去精简jre,现将本人的精简过程写出来,以供大家参考!

思路:jre/lib/rt.jar有很多class,但大多数你的程序用不到,利用批处理命令(下文提到的cutJre.bat)可以得到你的程序所用到的class,!

所用到的工具:(1)360压缩软件(ps:往压缩文件里复制文件特别方便)

(2)jre精简软件

本人已将上述两款软件压缩,以供大家下载:http://download.csdn.net/detail/pzhtpf/3878285

闲话少说,咱们赶快开始。

1,         咱们建一个新文件夹,这里我取名cutJre,将下载的精简工具解压到cutJre中,当然360压缩软件要安装,再将jdk中的jre文件夹复制到cutJre中,再将你的java导出jar文件和打包过的exe文件复制到cutJre中,我这里的示例程序是analysis.jar和analysis.exe,此时cutJre文件夹应包含以下内容:

Ps:一定要齐全,因为cutJRE.exe是本人用java所写,它的运行要也要基于jre!

1,         准备工作已经做好,这里所说的精简就是去精简jre/lib文件夹中的rt.jar,因为它最大,有大约46M。咱们打开cutJre.exe软件(第一次启动可能有点慢),根据提示去做,你用软件导入后,这时会弹出dos窗口和你的exe文件,把你的软件的所有功能使用一遍后,去关闭它们。这时先别急点击:“生成精简版JRE”,回到cutJre文件夹中看看,文件夹中多了cutJre.bat和class.txt(列出了所用到的class)这两个文件,清楚这一点可方便我们以后的操作!

2,         点击“生成精简版JRE”,时间可能会有点长,点击后,请稍等片刻,你可以干干其他事,正常的话,会出现下图:

精简完后cutJre文件夹中会多出几个文件夹,一般情况下是sun,java,javax,com这几个文件夹,在cutJre中新建一个文件夹,我这里是cutJre1,然后把jre和你的exe可执行文件,cutJre.bat,你的jar复制到cutJre1中,此时结构如下:

为了方便起见我们把rt.jar复制出来,单独对它进行操作后,再去替换cutJre/cutJre1/jre/lib/rt.jar,如果你对cutJre/cutJre1/jre/lib/rt.jar直接去操作的话,会提示你此文件正在使用,无法操作

然后用360压缩打开单独复制出来的rt.jar,去替换相应的文件夹如下图:

完成以后,用精简版的rt.jar去替换cutJre/cutJre1/jre/lib/rt.jar

第一次一般不会成功,然后我们去点击cutJre1文件夹中的cutJre.bat去找出缺少的class,会出现以下图示:

如上图所示:我们直接把红色部分所示的用原生态rt.jar文件夹替换精简版rt.jar中的文件夹, 比如说上图,我们直接把原版re.jar中sun文件夹中的java2d文件夹去替换精简版中相应的文件夹!,如下图:

比较麻烦的是cutJre.bat不会一次性显示出所有的缺少的class,所以要我们不断去试验!重复以上步骤!

待到cutJre不再报错时,可Exe可执行文件还是打不开,总提示

“Couldn’t load main class”,或其他错误,这就是你所使用的打包软件在作怪了,一般我们都用Exe4j,这时又要我们去替换所用到的类,一般你把java/lang,java/util,java/security这三个文件夹替换掉,如果还不行,再把sun/reflect,sun/misc,sun/security也替换掉!

经过这么一折腾,猛然间发现我们的rt.jar由将近47M变成了5M多,总算完成了瘦身!

4,rt.jar裁剪完成后,就要去删除一些jre中用不到的文件,首先删除jre中除bin,lib以外所有的文件!

然后我们再来给jre中bin文件夹动手脚,一个一个去删除,如果是你的程序用到的文件,电脑会自动提示你此文件删除不掉(ps:jre/bin/client这个文件夹电脑可能会提示你删不掉,但是它里面的classes.jsa有13M,它可以被删掉,在jre/lib中碰到这样的文件夹时,你也可以这样试试)

注意:java.exe这个文件不要删!我的jre/bin经过处理后包含如下文件:

然后再去处理jre/lib文件夹,方法跟上面一样,我的jre/lib理后包含如下文件:

Ps:这些文件都因你的程序而宜!

如果程序可以打开,cutJre.bat中也没有报错,可程序的部分功能还是无法使用,这时你可以注意到cutJre文件夹中有个error.log这个文件,打开它,就可以看到缺少的class,同上把相应的文件夹直接替换即可!

哈哈,最算精简完毕,程序可正常运行,最后我的精简过的jre为17M,在可接受范围之内!

如果还有问题,不能在任意电脑上去运行,那建议你只把rt.jar中的com文件夹去替换,经过本人的多次试验,这个文件夹最大,出问题的概率最小!而bin和lib中的文件也要小心翼翼的去删了!

e

jre精简详细教程(附精简工具)相关推荐

  1. 【中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程】

    中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程 简介 准备工作 PC端需要用到的工具 代码下载地址 GD32F103C8T6最小系统板 代码实现 GD32串口引脚定义如下: 串口的初始化 ...

  2. M1 电脑可以体验Windows11系统吗?M1 MAC安装win11详细教程(附图解)

    Win11预览版已经有了,很多M1 mac的朋友也想着体验一下Win11的快感,可是苦于没有11的镜像包,或者无法绕过TPM安装.接下来,小编将为大家带来M1 MAC安装win11详细教程附安装图,有 ...

  3. uniapp获取手机号(详细教程附代码)

    uniapp获取手机号(详细教程附代码) 一.获取code 二.通过code获取获取openId 和 session_key 三.让用户授权(同意后需要对数据解密) 个人小程序不能使用这个功能,必须是 ...

  4. c4d语言包英文,Maxon Cinema 4D R23(C4D R23)中英文安装及设置详细教程(附下载)

    中文包安装方法: 离线方法:打开下载好的语言包文件,在顶部菜单栏找到"Help>Manual Installation" 打开语言包的位置,选择要安装的.c4dupdate包 ...

  5. c4d语言包怎么安装方法,Maxon Cinema 4D R23(C4D R23)中英文安装及设置详细教程(附下载)...

    中文包安装方法: 离线方法:打开下载好的语言包文件,在顶部菜单栏找到"help>manual installation" 打开语言包的位置,选择要安装的.c4dupdate包 ...

  6. Win10搭建FTP服务器详细教程-附操作截图

    Win10搭建FTP服务器详细教程 1.设置电脑防火墙 1.打开"控制面板" →点击 "Windows Defender 防火墙" . 2.点击"允许 ...

  7. 最新抓取微信小程序源码教程+附逆向工具WxappUnpacker

    正文: 文章目录 前言 一.工具准备(免费) 1 解密工具 2 逆向工具 二.解密小程序 1.确认小程序包位置 2.打开一个小程序 3.解密小程序包 三.逆向小程序 1.检查nodejs 2.安装依赖 ...

  8. 百度云不限速破解详细教程附工具

    需要准备工具: Windows系统,CMD命令行,BaiduPCS-GO插件. BaiduPCS-GO插件下载地址:  链接:https://eyun.baidu.com/s/3htYoJIk 密码: ...

  9. 某云不限速破解详细教程附工具

    需要准备工具: Windows系统,BaiduPCS-GO插件. BaiduPCS-GO插件下载地址:  链接:https://download.csdn.net/download/shardy0/1 ...

最新文章

  1. 如何在同一台电脑上多个账户同时登陆MSN
  2. 操作系统、Linux、CPU的几个疑惑点
  3. 有的OUTLOOK不能自动加载归档ARCHIVE邮件的问题
  4. django创建一个管理员用户
  5. 每天一道LeetCode-----判断一个数是否是happy number(每一位的平方和最终为1)
  6. python网格划分_在python中创建一个2d网格
  7. jmeter的master-slave模式
  8. Jmeter通过CSV Data Set Config参数化
  9. 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
  10. 算法思考题-三只老鼠找8瓶毒药思路(个人思考+收集)
  11. 每天温习一个JS方法之Array.flat方法 第六天
  12. matplotlib绘图:散点图、折线图、柱状图、水平条形图、饼图和直方图
  13. 星宸科技IC2020笔试
  14. 腾讯云8核 16G 18M配置服务器评测
  15. 6-3 sdust-Java-可实现多种排序的Book类 (20 分)
  16. TM4C123GXL驱动安装
  17. 一条命令在 Ubuntu 中安装所有基本的媒体编解码器
  18. 苹果cms怎么设置播放器
  19. 使用PlantUML插件来做图
  20. 抖音表情包项目怎么变现?普通人如何制作表情包短视频月入过万?

热门文章

  1. 关于LeakCanary检测华为手机内存泄漏问题
  2. python利用turtle库绘制正方形绕一个顶点旋转
  3. JAVA word转pdf高清无乱码版本(图片也可以的)
  4. 腾讯云主要产品都有哪些
  5. 自然语言处理(九)——数据平滑
  6. 2021-03-27 深度信念网络(DBN)学习笔记
  7. 《Unity2018AR与VR开发快速上手》随书内容资源相关说明
  8. FireFox必备插件(二)
  9. JAVA程序的逻辑控制及输入输出
  10. Python验证“哥德巴赫猜想”