0
点赞
收藏
分享

微信扫一扫

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )


文章目录

  • ​​一、裁剪 lib 目录下的 jar 文件​​
  • ​​二、压缩 rt.jar 文件​​

参考博客 :

  • ​​精简jre1.8​​
  • ​​精简jre步骤​​
  • ​​裁剪JRE(嵌入式设备的java环境移植)​​

资源下载地址 ( 本篇博客的资源快照 , 不是最终版的裁剪效果 ) : ​​javascript:void(0)​​



JRE 裁剪分为三步 :

  • 第一步 : 裁剪 bin 目录下的 dll 动态库文件 ;
  • 第二步 : 裁剪 lib 目录下的 jar 文件 ;
  • 第三步 : 裁剪 rt.jar 文件 ;

在 上一篇博客 ​​【开发环境】JRE 裁剪 ① ( 裁剪 bin 目录下的 dll 动态库文件 )​​ 执行了第一步操作 , 裁剪 bin 目录下的 dll 动态库文件 , 本篇博客开始执行第二步裁剪工作 , 裁剪 lib 目录下的 jar 文件 ;






一、裁剪 lib 目录下的 jar 文件


运行 Process Explorer 工具 , 默认状态下显示的运行该程序使用到的 dll 动态库文件 ,

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_JRE

执行 " Ctrl + H " 快捷键 , 就可以切换成查看执行该程序所需的文件信息 , 其中包含 jar 包信息 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_jar_02


在上图中 , 点击 Name 进行排序 , 查看 jre 目录中用到了哪些 jar 包 ;

按照名称搜索下来 , 发现只用到了如下两个 jar 包 ;

D:\004_Operate\exe4j_work\JreCutter\jre_32\lib\charsets.jar
D:\004_Operate\exe4j_work\JreCutter\jre_32\lib\rt.jar

删除 D:\004_Operate\exe4j_work\JreCutter\jre_32\lib 目录下的所有文件 , 只保留 charsets.jar 和 rt.jar 两个文件 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_JRE_03

删除其它 jar 文件后 , 程序仍然正常执行 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_JRE_04

此时 jre 还剩下 76MB ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_java_05






二、压缩 rt.jar 文件


将 rt.jar 拷贝出来 , 进行解压 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_java_06

解压后 , 得到这些目录文件 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_java_07

在上述解压 rt.jar 的目录下 , 执行如下命令 , 重新打包 rt.jar ;

jar cvf rt.jar com java javax org sun jdk

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_JRE_08

压缩完毕后 , rt.jar 只有 30MB 左右 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_java_09

将压缩后的 rt.jar 拷贝到 jre 的 lib 目录下 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_bin_10

此时程序依然可以执行 ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_bin_11

jre 裁剪后 30MB ;

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )_bin_12


举报

相关推荐

0 条评论