精简JRE - 实例Swing计算器 with 精简JRE

 

该实例Swing计算器 with 精简JRE,分二步完成.

由于在本博客中都有介绍,因此不再赘述,只是简单说明一下.

1. 精简JRE第一步 — 精简bin目录

主要目的: 精简动态链接库dll文件.

除了保留执行Java程序必备的java.exe外,通过相关工具查看正在运行的Java程序所加载的dll文件.

根据这些文件的路径,从而得知运行程序所依赖的dll文件,保留这些dll文件,其他的删除.

 

精简后bin目录:

 

 

2. 精简JRE第二步 — 精简lib目录

主要目的: 精简类库,特别是rt.jar.

该目录大体上来说包含类库,系统资源文件,虚拟机配置文件(没深究,可能说得不太对).

虚拟机配置文件jvm.cfg(位于i386目录下),作为java.exe的全局参数,必不可少.

 

系统资源文件,诸如字体,鼠标样式等,若未用到,可以删除.

当前实例Swing计算器刚好有用到字体资源,fontconfig.bfc也需要保留.

同时,从精简后的bin目录中动态链接库文件fontmanager.dll也可以确认该实例用到字体资源.

 

类库rt.jar占整个lib目录75%左右的空间,所以精简rt.jar是第二步的重中之重.

精简rt.jar的过程,先是通过java -verbose命令,跟踪程序执行过程,将执行过程中所有加载的类记录到log.txt中;

再将该文件做相应的修改,方便类拷贝程序将rt.jar中相应的类拷贝出来;最后打包拷贝出来的类,并重命名为rt.jar.

完成rt.jar的精简工作.

 

类库charsets.jar包含执行class文件所需的编码方式,一般只会用到一种(GBK或UTF-8).根据上述类拷贝程序中提示信息,手动将那几个文件拷贝出来.

 

拷贝程序输出信息:

 

注: 根据程序的不同,所需要加载类不同.有些程序会需要加载除rt.jar,charsets.jar以外的程序.因此,精简过程要根据程序不同灵活变通(此时可以查看原始的log.txt文件,手动找出图中ERROR行类位置).

本实例不仅用到rt.jar以及charsets.jar类库,还用到lib/ext/localedata.jar类库(由于加载的类不多,自行手动复制后打包)

 

精简后lib目录:

 

Swing计算器 with JRE:

 

运行Swing计算器:

@echo off 
@echo author: jarg 
@echo Swing计算器 with JRE,正在运行... 
set path="./jre/bin" java -cp "./jre/lib" -jar Calucator.jar 

  

 

 

 

 

该实例Swing计算器源程序来源于网络,本文主要目的是为了展示精简后的JRE.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值