`
yeshaoting
  • 浏览: 683417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

精简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.

 

  • 大小: 63.7 KB
  • 大小: 22.9 KB
  • 大小: 8.7 KB
  • 大小: 6.2 KB
  • 大小: 34.6 KB
2
2
分享到:
评论
1 楼 gogobobo0529 2013-04-18  
除了保留执行Java程序必备的java.exe外,通过相关工具查看正在运行的Java程序所加载的dll文件.


...求相关工具....

相关推荐

    jadx-gui-1.4.6-with-jre-win.zip.cab

    jadx-gui-1.4.6-with-jre-win.zip.cab

    jre-8u301.zip

    (1)jre-8u301-linux-i586.rpm (2)jre-8u301-linux-i586.tar.gz (3)jre-8u301-linux-x64.rpm (4)jre-8u301-linux-x64.tar.gz (5)jre-8u301-macosx-x64.dmg (6)jre-8u301-macosx-x64.tar.gz (7)jre-8u...

    jadx-gui-1.1.0-with-jre-window.zip

    首先,"jadx-gui-1.1.0-with-jre-windows.zip"是jadx-gui的Windows版本,包含了jadx-gui的1.1.0更新,并集成了Java运行环境(JRE),这意味着用户无需单独安装JRE即可运行此软件。这在遇到网络速度不佳时,提供了...

    jre-8u231-windows-x64/jre-8u231-windows-i586

    标题中的"jre-8u231-windows-x64"和"jre-8u231-windows-i586"指的是Java JRE的特定版本,这里的"8u231"表示的是Java 8的更新版本号231,"windows"则表明这是为Windows操作系统设计的。"x64"代表64位系统,而"x86"或...

    jre-7u9-windows-x64

    标题“jre-7u9-windows-x64”指的是Java Runtime Environment(JRE)的第7个主要版本的第9次更新,专为64位Windows操作系统设计。JRE是Oracle公司提供的Java平台的核心组件,它包含了运行Java应用程序所需的全部环境...

    jadx-gui-1.2.0-with-jre-win.zip

    【标题】"jadx-gui-1.2.0-with-jre-win.zip"是一个针对Windows平台的Android APK反编译工具包,包含了jadx-gui的1.2.0版本和Java运行环境(JRE)。 【描述】该工具的主要功能是帮助开发者或安全研究人员对Android...

    jre-6u21-windows-i586

    标题“jre-6u21-windows-i586”所指的是一款针对Windows操作系统,32位(i586)平台的Java运行环境(Java Runtime Environment,简称JRE)的更新版本,具体为6u21版。Java运行环境是运行Java应用程序所必需的基础...

    jre-8u202-windows-x64.exe

    jre-8u202-windows-x64.exe适用于Windows x64位系统,是在Binary Code License (“BCL”)许可协议下提供最后的免费商业版本,允许用在生产环境中; 对于 2019 年 4 月 16 日开始的版本,Oracle JDK 许可协议已更改...

    jre-8u241-windows-x64.exe

    jre-8u241-windows-x64.exe jre-8u241-windows-x64.exe jre-8u241-windows-x64.exe 避免官网下载,官网下载太麻烦了。

    jre-8u202-windows-x64.tar.gz

    jre-8u202-windows-x64.tar.gz适用于Windows x64位系统,是在Binary Code License (“BCL”)许可协议下提供最后的免费商业版本,允许用在生产环境中; 对于 2019 年 4 月 16 日开始的版本,Oracle JDK 许可协议已...

    jadx-gui-1.1.0-with-jre-windows.zip

    标题中的“jadx-gui-1.1.0-with-jre-windows.zip”指出这是一个针对Windows操作系统的软件包,包含jadx-gui的1.1.0版本,并且集成了Java运行环境(JRE)。jadx-gui是一款流行的反编译工具,特别适用于Android应用...

    jre-8u152-windows-x64

    标题“jre-8u152-windows-x64”指的是Java Runtime Environment(JRE)的特定版本,这是Oracle公司提供的用于执行Java应用程序的软件组件。这个版本是8u152,意即Java 8的第152次更新,针对Windows 64位操作系统。...

    jre-windows-java环境.rar

    在给定的压缩包"jre-windows-java环境.rar"中,包含了针对Windows操作系统的Java环境安装文件以及一个使用教程,帮助用户在他们的计算机上设置和使用Java环境。 1. **Java虚拟机(JVM)**:JRE的核心部分是Java...

    jre-8u401-windows-x64

    jre-8u401-windows-x64

    jre-8u371-windows-x64 1.8

    jre-8u371-windows-x64 1.8

    eclipse-temurin-alpine-jre-17

    eclipse-temurin官网下载的eclipse-temurin-alpine-jre-17

    jre-7u21-windows-x64.rar

    标题“jre-7u21-windows-x64.rar”指的是Java Runtime Environment(JRE)的版本7更新21的64位Windows版的压缩文件。JRE是Oracle公司提供的用于执行Java应用程序的软件环境,它包含了Java虚拟机(JVM)、类库和其他...

    jre-7u17-windows-i586

    "jre-7u17-windows-i586"这个标题表明这是一个针对Windows操作系统32位(i586架构)的Java 7 Update 17版本的JRE安装包。这个版本的发布旨在为用户提供了运行基于Java技术的应用程序所需的运行时环境。 Java是一种...

    server-jre-8u202-linux-x64.tar.gz

    Server JRE (Java SE Runtime Environment) 8u202,server-jre-8u202-linux-x64.tar.gz适用于Linux 64位系统,是在Binary Code License (“BCL”)许可协议下提供最后的免费商业版本,允许用在生产环境中;...

Global site tag (gtag.js) - Google Analytics