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

news2024/12/24 3:13:00

文章目录

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

参考博客 :

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

资源下载地址 ( 本篇博客的资源快照 , 不是最终版的裁剪效果 ) : https://download.csdn.net/download/han1202012/87389091


JRE 裁剪分为三步 :

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

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





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



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

在这里插入图片描述

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

在这里插入图片描述
在上图中 , 点击 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 两个文件 ;

在这里插入图片描述

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

在这里插入图片描述

此时 jre 还剩下 76MB ;
在这里插入图片描述





二、压缩 rt.jar 文件



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

在这里插入图片描述

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

在这里插入图片描述

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

jar cvf rt.jar com java javax org sun jdk

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

此时程序依然可以执行 ;

在这里插入图片描述

jre 裁剪后 30MB ;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch深度学习【十五】

微调 网络架构 一个神经网络一般可以分成两块 特征抽取将原始像素变成容易线性分割的特征线性分类器来做分类 微调 思路—将相同功能的网络及其参数直接进行迁移使用,而并不是通过重新学习,只改变部分层次即可 训练 是一个目标数据集上的正常训练任务…

老杨说运维 | 2023,浅谈智能运维趋势(二)

(文末附视频,一键观看精彩内容) 前言: 上文提到了智能运维现状中的变化趋势以及 上文提到了智能运维现状中的变化趋势以及过往误区,老杨认为智能运维的体系化建设还需从抓牢数据治理为起点,以终为始做好规…

miniconda虚拟环境安装使用jupyter notebook及相关

一、安装jupyter 1创建miniconda虚拟环境。(前面文章讲过了) 2在创建的虚拟环境下,conda install ipython jupyter 3在该环境下执行jupyter notebook。 注意:此时打开的jupyter notebook内核Python 3(ipykernel)对应该虚拟环境&am…

数据安全治理 1

数据安全治理应以数据为中心,多元化主体共同参与,兼顾发展与安全。 数据安全总体视图,包含了体系,维度,目标,实践。 制度建设 技术体系,如加密、脱敏等手段,进行数据全生命周期的管…

盘点:2022年豆瓣评分8.0以上的计算机书籍有哪些?

2022年已经结束 ,小编来盘点一下过去一年里出版的计算机图书里,有哪些计算机书籍是豆瓣评分8.0以上图书。 1、人工智能:现代方法(第4版)(上下册) ​ 系统性总结人工智能的方方面面,…

寒假每日一题2023——4261. 孤独的照片

写在前面 题目来源:AcWing 寒假每日一题2023活动 链接:https://www.acwing.com/problem/content/description/4264/ 题目 Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛&#x…

论文解读12——NGBoost: Natural Gradient Boosting for Probabilistic Prediction

目录1、文章贡献2、评分规则3、自然梯度4、自然梯度提升算法NGBoost1、文章贡献 由吴恩达团队提出的NGBoost是一种通过梯度提升进行概率预测的算法,与经典的回归模型返回一个点估计结果不同,概率回归模型返回全概率分布,将条件分布的参数视为…

Windows系统安装jenkins服务 war包形式

1.首先下载 jenkins war包 注意和jdk 的版本匹配 https://www.jenkins.io/zh/download/ 2.配置jenkins环境变量 如果不配置环境变量, jenkins的主目录默认生成在c盘下 环境变量怎么配? 请自行百度 3.运行jar包 注意修改war包路径 java -jar /data/jenkins/jenkins.war…

DNS原理与搭建(一)

文章目录一、DNS的概念与原理二、DNS私服搭建一、DNS的概念与原理 概念 DNS指的是域名服务器,就是将域名转换成IP[或者将IP转换成域名];当我们在浏览器中输入域名并按下回车,会对我们输入的域名进行解析,并返回一个IP地址,在通过…

Deepin系统深度学习环境配置指南

Deepin深度操作系统在众多Linux发行版本中深受欢迎,在实用性和专业方面到达了很好的均衡,该系统软件适配丰富支持很多第三方软件,增加了系统任务的灵活性。在装好该系统后,如何在该系统上进行深度学习代码训练调试,这就…

网络编程.

文章目录一、概述通信要素一:IP和端口号IP端口号通信要素二:网络协议TCP网络编程UDP网络编程URL网络编程每日一考一、概述 1、网络编程中两个主要问题: 如何定位网上的一台或多台主机,定位主机上的特定应用 找到主机后&#xff0…

北京化工大学1/17寒假集训题解(>1800)

目录 A - 文艺平衡树 B - 可持久化文艺平衡树 C - 可持久化平衡树 主要思路:FHQ Treap 可持久化 D - 维护数列 初始化 Insert操作 Delete操作 Reverse操作 Make-Same操作 Get-Sum操作 Max-Sum操作 懒标记的处理 E - 文本编辑器 A - 文艺平衡树 这里的…

贪心策略(二)兑换零钱(最后还得是动规)

兑换零钱(一)_牛客题霸_牛客网 兑换零钱(二)_牛客题霸_牛客网 兑换零钱(一)_牛客题霸_牛客网 描述 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要…

C++程序设计——类和对象II

一、再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量赋一个合适的初始值。 虽然上述构造函数调用后,对象中已经有了初始值,但是不能将其称之为类对象成员的初始化,构造函数…

Vue学习笔记(三)

Vue学习笔记三1.组件的引入及使用2.插槽3. 插槽三种写法3.1 第一种3.2 第二种3.3 第三种简化写法4.组件生命周期4.Vue路由1.组件的引入及使用 在components中写入组件Header.vue 在App.vue中进行引入 <template><div><!-- 组件化: 1个页面由不同的部分组合而…

excel日期函数:DATEDIF的几个实际应用公式编写

DATEDIF函数不仅可以用来计算年龄、工龄、工龄工资、项目周期&#xff0c;还可以用来做生日倒计时提醒&#xff0c;项目竣工日倒计时提醒等等。用上它&#xff0c;您再也不会缺席那些重要的日子&#xff0c;不论是亲人生日、项目竣工日&#xff0c;还是儿女的毕业典礼日。DATED…

明道云大湾区2023年季度闭门会议圆满结束

2023年1月12日&#xff0c;明道云在深圳坂田天安云谷召开明道云大湾区2023年季度闭门分享会。超过百位来自中大型企业组织的IT部门代表和业务技术专家莅临现场&#xff0c;进行了一下午的同台交流。广汽本田、深圳龙华区人民医院、民生银行及华润置地的项目代表&#xff0c;深度…

WebService最优方案选择

需求 最近&#xff0c;接触到了一个java对接C#的项目&#xff0c;使用WebService技术开发。项目已经快告一段落了&#xff0c;经过这几个月接触和使用。我有了一个清晰的认识&#xff0c;之前也调研了互联网上大部分实现的通讯&#xff0c;他们的优缺点&#xff0c;我都有一定…

linux系统下如何获取文件的创建时间

linux 获取文件的创建时间 提到获取文件的创建时间&#xff0c;写Java的小伙伴可能会说&#xff0c;那太简单了&#xff0c;java.nio.file.attribute.BasicFileAttributes下这个类不就记录了文件的相关信息吗&#xff0c;比如下面这段代码不就得到文件的创建时间了嘛&#xff…

chrono_CLOCK(二)

chrono_CLOCK&#xff08;二&#xff09; 文章目录chrono_CLOCK&#xff08;二&#xff09;从测量C程序运行时间引入C风格C风格时钟的成员和源码分析成员函数成员变量Clock提供的操作例子三个clock区别例子三个clock的精度问题方式一方式二从测量C程序运行时间引入 C风格 在C…