精简jre简单教程,本文来自转载
写一些swing小程序,需要附带一个很大的jre文件夹,显然这是不现实的,使用起来也不方便,当然如果电脑有java环境就不需要这样,但是如果没有java环境,那么就需要jre了,更需要一个精简的jre。
网上有很多教程,大家可以自行网上搜索,实践才是检验真理的唯一标准,上手先!
首先,我们需要一个完整的java项目,这里我是使用了Javaswing项目作为示例,为了更加真实,导出jar,使用exe4j将jar变成exe,添加jred时候选择同级目录下jre,并改名为“jre”,java版本1.8。
至于如何使用exe4j请见https://blog.csdn.net/rico_zhou/article/details/79868129
或者自行网上搜索。
先来看一下完整的jre,上图
主要是两个文件夹bin和lib,bin目录包含了java虚拟机以及各种执行程序,lib则包含了运行环境所需要的类库资源。
这两个目录都需要精简,精简前bin大概80m,lib大概95m,精简后整个jre可以达到40m甚至更小。
一,精简bin目录
首先将jre复制到jar包或者exe程序同级目录,尽量不操作系统的jre,运行打包好的可执行jar包,或者双击exe,注意,运行jar的命令不是直接 java -jar xxx.jar,这样会使用系统的jre,应该这样,cd到复制的jre目录(也就是exe和jar所在目录)
命令:jre/bin/java.exe -jar xxx.jar
这样使用的是复制的jre,或者直接双击exe(前提是打包的exe使用的环境也是复制的jre)。
程序运行后,我们直接到jre/bin目录下删除所有能删除的文件及文件夹,接下来停止程序,再次同样方法启动程序,如能正常工作则进入下一步精简,如果不能正常运行,比如我使用的是swing程序,发现不能运行,则需要把刚刚删除的某些文件再还原回来,比如javaw.exe,javaws.exe,以及各种dll文件,重复上述步骤直到程序能够正常运行,也可以反过来一个或者多个文件删,直到最佳,虽然麻烦但是保险一些。
精简后bin大概10m左右。
二,精简lib目录
lib目录主要精简rt.jar这个jar包,足足有50m,接下来参考一篇文章,详见此
https://blog.csdn.net/xiaoping8411/article/details/6973887(链接特此说明),也可以百度查看其它文章,网上有很多,主要的思路就是使用命令将程序运行所需要的类都下载下来,然后挨个筛选,命令如下
放入bat文件双击运行即可,注意此时尽量要运行程序的所有分支,尽量将用到的类下载下来。然后按照上述文章将rt.jar解压,运行代码导出新的rt文件夹。
我导出的rt文件夹如下
然后就是使用命令将rt文件夹重新打包成jar包,
jar cvf rt.jar -C rt\ .
注意rt\后面有一个空格和点
完成后大概只有几兆大小了,将新的rt.jar复制到jre/lib下替换,运行尝试是否报错,与上述方法一样,挨个尝试尽量精简lib目录,最后如下
这时候基本精简差不多了,整个jre大小也只有20m左右,但是当你运行程序的时候,有时候会出现一些错误,这时候可能就是缺少类,也就是之前尽量下载所有运行类的步骤没有完全达到效果。
解决办法1:
命令运行jar或者运行exe,操作程序直到出现错误,如图所示错误
显然是缺少类,基本上缺少的都在rt.jar中,于是到原rt文件夹,目录rt/com/sun/imageio/plugins.jpeg,找到所有相关的JPEG开头的类,复制到新生成的rt对应文件夹下,然后重新命令打包rt成rt.jar
再次运行程序,如此反复,直到不再出错,因为只有在运行需要的时候才能加载查找到类,所以难免有所缺失,比较麻烦。
解决办法2:
直接把原始解压的完整的rt文件夹重新打包成rt.jar,这样内容没有变,但是大小缩小了一半,只有20兆左右,总的jre大小40m左右,这样也算是瘦身了。
相关推荐
标题 "精简JRE - 实例Swing计算器 with 精简JRE" 提供了两个主要知识点:一是关于Java的精简版运行时环境(JRE),另一个是使用Swing构建的计算器应用。 1. **精简JRE**: Java运行时环境(JRE)是执行Java应用...
- 教学环境:对于初学者,无需安装庞大的Java开发工具包(JDK),仅安装这个JRE即可运行学习项目。 - 低配置设备:在内存和硬盘空间有限的设备上,精简版JRE提供了运行Java程序的可能性。 5. **文件结构**: ...
精简jre步骤 1. 拷贝一个完整版的jre文件夹到D盘 2. 删除jre目录下所有出bin和lib目录的所有文件或目录 3. 打开cmd窗口,设置path路径为空,转到D:\jre\bin目录,运行java –version。正常显示当前Java的版本。 4. ...
笔者精简了jre,并给出一个可用实例,笔者有一个java项目,已经对jre进行精简,制作了可执行包,从140M减到了20M,在精简jre的过程中,笔者也写了一些脚本和代码,旨在过程化该解决方案, 但是由于使用了exe4j,而...
当面对企业级用户时,虚拟机安装这根本就算不上问题,布署之类事宜本就有专人负责,我们踏踏实实写代码就好,精简JRE之类的琐事与我何干?或者说,根本就不存在精简它的必要,又何必想要去精简呢? 然而,当你的...
制作 docker 精简 jre8 基础镜像,基础镜像为bitnami/minideb,jdk8u321版本,已解决httpclient中文乱码和webservice-client缺包问题。
精简JRE的主要目的是减少安装包的大小,提高下载和部署的效率,同时降低运行时的内存占用。在JRE中,rt.jar是最核心的库文件,包含了Java标准类库的所有类。通过对rt.jar进行精简,可以移除那些不常用或者特定应用...
- **定制需求**:某些应用可能只需要特定的Java功能,精简JRE可以只包含这些必要的部分。 - **安全性**:减少不必要的组件可以降低潜在的安全风险。 3. **精简方法**: - **选择性安装**:通过定制安装,仅安装...
然而,标准的JRE安装包相对较大,对于某些只需要特定功能的应用场景,如服务器部署、嵌入式系统或者物联网设备,精简JRE可以有效地减小资源占用,提高运行效率。本篇文章将深入探讨如何精简JRE中的"lib"目录,以满足...
标题中的"超级精简版的jre"指的是对标准JRE进行优化和裁剪,移除了不必要的组件和服务,以实现更小的体积、更快的启动速度以及更低的资源消耗。 精简版JRE通常是为了满足特定应用场景的需求,比如嵌入式设备、低...
Java Portable 1.8.0.181 绿色便携精简JRE, jPortable在线安装后提取版。最大化保持功能版。7z压缩后44M解压后162M。可配合便携版360极速浏览器,firefox等浏览器使用,使便携式java随时可用
在IT领域,特别是Java开发中,经常需要将应用程序...总结,将Java应用程序转化为exe并精简JRE,既方便了用户,也优化了软件性能。通过使用恰当的工具和方法,可以实现这一目标,同时需要注意各种技术细节和合规问题。
"精简jre最新版"指的是针对Java运行环境的一个轻量级版本,这个版本进行了优化,删除了一些不必要的组件,以减小安装包的大小。在描述中提到,它支持Swing组件,这意味着用户依然可以使用Java的图形用户界面(GUI)...
"精简版JRE"是为了满足特定需求而定制的一个轻量级版本,它去除了标准JRE中的一些非必需组件,以减小体积,提高运行速度,降低系统资源消耗。 精简版JRE的主要特点: 1. **体积小巧**:相比完整版JRE,精简版删除...
"精简JRE"通常指的是为了减少安装体积、提高运行速度或者针对特定应用需求而定制的JRE版本。这种定制化的过程可能包括移除不必要或冗余的库、插件和服务,使得JRE更加轻量化,适用于那些对系统资源有限制或有特定...
对jre包里的rt.jar精简,第一步:解压工具.rar,第二步:把你打包的jar小项目放到同一文件夹里。第三步:cmd,运行命令javaw -Dfile.encoding=utf-8 -jar GreenJVMMake.jar -t da -i ./mytest.jar -o ./ 执行后可以...
Autojar是一款非常实用的工具,主要用于自动化Java应用程序的打包过程,特别是对于那些需要精简JRE(Java运行环境)的项目,它能帮助开发者极大地减少最终部署包的大小。 Java应用程序通常依赖于大量的库文件和JRE...
精简JRE的过程主要涉及到以下几个步骤: 1. **理解JRE组成**:JRE包含了基础的JVM、Java核心类库(如rt.jar)、本地库(如lib目录下的各种DLL或so文件)以及其他支持文件。开发者需要识别出哪些组件是程序运行所...
在部署SWT/JFace应用时,使用这样的精简JRE有几个优点: 1. **更快的下载速度**:对于用户而言,下载小体积的JRE意味着更快的安装过程。 2. **节省磁盘空间**:对于系统资源有限的设备,精简版JRE可以有效减少存储...
精简JRE通常涉及以下步骤: 1. **选择精简工具**: - 工具如`jlink`是Java 9及更高版本自带的命令行工具,用于创建定制的运行时图像。它允许用户选择需要的模块并生成自定义的JRE。 - `jpackage`是Java 14引入的...