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

JRE极限精简探求手册[0]——JRE该减肥了*

阅读更多

PS:业余继续整理Loonframework-web部分源码中,在业余的业余中抽空写点杂说……
——————————————————————————————————————
PS:本文JRE皆指Sun JRE。

大家都知道,通常Java程序需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java程序跑起来(JET之类转Win32编译的方式愚以为不如直接写C++程序,那样更安全更高效) 。

当面对企业级用户时,虚拟机安装这根本就算不上问题,布署之类事宜本就有专人负责,我们踏踏实实写代码就好,精简JRE之类的琐事与我何干?或者说,根本就不存在精简它的必要,又何必想要去精简呢?

然而,当你的软件最终不是面向企业,而是面向个人用户时,那么JRE的安装就绝对成了问题。

我们想象一下,现在有两套同期发布的个人软件,一套是Java开发,一套是Delphi开发,它们功能近似,售价近似,且都处在普及阶段,同样没有多余的经费进行广告宣传,隐藏数据是:Java软件实用性较强。而此刻人们无从得知其具体性能,只能通过下载免费试用版作比较。

这对于Delphi开发的软件似乎没什么说的,只要老老实实打包发布就好;可对Java软件来讲,麻烦却找上门来了,那就是,我要怎么布署安装才合适呢?

方式一:老老实实把JRE打包进软件中,一起发布。理由:1、减少用户操作复杂度,直接安装即可使用,有利于用户体验。2、避免在已安装JRE系统上产生版本冲突。

Java方软件大小:使用最适合Java程序发布的Install4J打包,比如JRE1.6大约能够压缩到10MB以内,假设我们以jar形式发布软件,发布的jar及配置文件等累计占用空间10M以内,那么到了Install4J中至多也就是2-3MB,理想状态下,我们的安装程序可能只有10MB多一点左右甚至不到,当然,这已经接近极限了。

Delphi方软件大小:使用InstallShield打包,exe及dll与其他配置文件累计占用空间5MB左右,打包后安装文件维持在2MB左右(实际上可能更小|||)。

可能的结果:2MB VS 10MB的同类软件,简单化的说,就是下载你一个Java程序的时间,够下载这Delphi程序5个|||。
我们都知道,如果你在网络上下载电影,只要有1部以上,那么通常讲都会或自觉或不自觉地下载速度较快那部,难道在下载软件时,人就会例外吗?
结果是,用户可不懂什么叫Delphi那个是Java,他们只关心那个快捷,那个方便,而看到这2MB和10MB的对比,他们则更多的会怀疑体积庞大一方的技术,为什么东样的东西你做这么大人家就占那么点空间?怀疑你内置的东西,该不会这小子整合套远程监控系统进来吧?……如果两个软件同时发布,只要Java方没有比Delphi方更高明的宣传手段,那么结果肯定是大家都一窝蜂的去下载Delphi软件,过一段时间,大家软件用熟了,习惯成自然,自然还是继续使用Delphi方的,即便有几个用Java方软件感觉不错,那也只会成为类似Mac OS对比Windows的感叹罢了。

方式二:利用网络安装手段,比如使用Sun提供的jinstall那套网络安装小工具,文件大小都只有几百KB,或者直接令Install4J安装程序进行网络下载,而不直接打包JRE。理由:1、最大限度缩小安装程序体积,增加用户信赖度。 2、减少程序下载时间,有利于用户体验。

Java方软件大小:由于没有直接携带JRE,Install4J打包程序后我们的安装文件至多也不过2、3MB,看上去很可能比Delphi安装程序更小。

Delphi方软件大小:见方式一。

可能的结果:2MB左右 VS 2MB的同类软件,此刻潜在用户们实际上是很难抉择的,大体上讲不成倍数的软件体积差距普通用户基本是无视的,所以他们这时很可能会想要比较一下性能,也就是Delphi程序和Java程序各下载一个看看,反正看上去空间占用都很小。
然而,对Java来说,问题再次出现在某个场景之内......
哇!某位使用Java版软件的女用户尖叫着呼唤她的XX:“快来看看,我这电脑怎么了?自动下载起来了~”,“什么事啊?我看看……我靠,你这下载什么呢?还十几兆这么大?!”,女:“不知道呀,我一安装XXXX软件,它就提示正在准备安装,然后就联网开始让我下载什么Java,我一点击下载,都1分钟了还没完呢~”,男:“快中断进程,肯定是个流氓软件!”,女:“我X,什么破东西啊,以后再也不用它了。”……
结果是,与这位女性有相同或类似经历的用户开始痛骂Java开发的XXXX软件,进而发展到论坛甚至媒体,XXXX软件尽管多方解释,但无奈于我国的特殊国情,最终被用户归类于服务差性能差的垃圾软件一类,同时受舆论及自身安装体验影响,用户大量涌向市场占有率本就非常接近的Delphi软件一方……

我们来看一下Sun提供的JRE1.6 Windows版安装说明:

系统要求

* Vista
* Windows 2000 (SP3+)
* Windows XP Home
* Windows XP Professional (SP1+)
* Windows Server 2003 Editions

支持Intel和100%兼容处理器。推荐使用物理内存至少为 64MB 的 Pentium 166MHz 或更快处理器。此外,还应至少拥有 98MB 的可用磁盘空间。

无论我们怎样替普通用户布署JRE,一个完整的JRE始终都太大了,这对于大部分只想完成单一功能,又没有多少软件知识的普通用户来说,无疑是种负担.

而事实上讲,我们所使用的类库往往只是JRE提供给我们类库中的极小一部分,大多数时候,不过是十之二、三甚至于十之一、二,更多的则仅仅是无意义的存在那里,浪费着用户的磁盘空间罢了。

试想当年Applet何等风光,如果不是因为它太重太不方便,不是因为与微软决裂及Flash等轻量级应用的双重打击,那么今天那些写Flash的家伙干的事情,本就该归我们Java程序员负责才对。

于是我们渴望更小的,更实用的,轻量级的,消费型的JRE出现,以从根本上避免上述这些无谓的浪费与遗憾。

庆幸的是,Sun已经开始意识到这些,开始尝试JavaFX项目及Java Browser Edition计划等一系列行动,但目前来说,依旧是远水解不了近火,所以目前阶段要想精简JRE,还是要靠我们自己动手、丰衣足食了。

下文开始,我将结合具体实例尝试JRE的精简与压缩。

————————————————————————————————————————————————————

睡觉,明天晚上回来继续……
分享到:
评论

相关推荐

    JRE瘦身 jre减肥 精简jre jre精简

    因为很多用户的电脑上没有合适版本的jre。用一个软件的同时必须安装另外一个软件(jre)会给人一种流氓软件强行捆绑的感觉,而很多用户对此很抵触。更不要提用户电脑上的jre版本千变万化(有没有jre,是微软的还是...

    精简的jre和精简过程

    最近在写一个小程序,jre1.8.0_181整整有199mb,对于一个只有400多k的程序来说,完全没必要,于是就进行精简,把jre精简到40M、左右,程序也能正常运行。如果你急需使用精简的jre,可以下载试试。

    精简版jre.zip 64位 1.8.0压缩后才20M

    本"精简版jre.zip"是专为64位操作系统设计的1.8.0版本,其经过优化和裁剪,体积仅有20MB,相较于官方完整版JRE,大大减少了存储空间的需求,对于那些只需要运行Java桌面程序而无需进行开发工作的小朋友们来说,这是...

    Jre8精简基础镜像包

    制作 docker 精简 jre8 基础镜像,基础镜像为bitnami/minideb,jdk8u321版本,已解决httpclient中文乱码和webservice-client缺包问题。

    超级精简版的jre

    标题中的"超级精简版的jre"指的是对标准JRE进行优化和裁剪,移除了不必要的组件和服务,以实现更小的体积、更快的启动速度以及更低的资源消耗。 精简版JRE通常是为了满足特定应用场景的需求,比如嵌入式设备、低...

    jre1.8 64位精简精版.zip

    标题提到的是"jre1.8 64位精简精版.zip",这意味着这是一个针对64位操作系统的Java 1.8运行环境的轻量化版本。描述中指出,原始的JRE 1.8大小约为160MB,而经过精简处理后,体积减小到80MB,压缩后的zip文件更是压缩...

    jre精简工具及教程

    针对这种情况,开发者经常需要对JRE进行精简,以便减小应用程序的部署大小,提高用户体验。 精简JRE的过程主要涉及到以下几个步骤: 1. **理解JRE组成**:JRE包含了基础的JVM、Java核心类库(如rt.jar)、本地库...

    jre精简工具(附详细教程).

    3. **创建精简JRE**: - 在命令行中,输入类似以下的`jlink`命令: ``` jlink --module-path <jdk_path>/modules --add-modules <required_modules> --output custom_jre ``` 其中`<required_modules>`替换为上...

    精简版JRE.rar

    本压缩包"精简版JRE.rar"提供了一个经过优化的JRE版本,旨在满足开发者在特定场景下对轻量级、快速部署的需求。 首先,我们来详细了解JRE的组成部分及其作用: 1. **Java虚拟机(JVM)**:JVM是Java平台的核心,它...

    jre6精简版

    标题提到的"jre6精简版"是Java 6的一个轻量级版本,专门针对特定需求进行了优化和瘦身。这个版本在保持基本功能的同时,减小了安装包的体积,以便于快速下载和部署。 描述中提到"支持webservice",这意味着尽管是...

    精简jre步骤 迷你jre制作过程

    精简jre步骤 1. 拷贝一个完整版的jre文件夹到D盘 2. 删除jre目录下所有出bin和lib目录的所有文件或目录 3. 打开cmd窗口,设置path路径为空,转到D:\jre\bin目录,运行java –version。正常显示当前Java的版本。 4. ...

    精简 jre 效果程序

    "精简 jre 效果程序"这个主题指的是对标准的JRE进行优化和裁剪,以减少其体积,提高运行效率或适应特定的系统需求。 1. **JRE组成部分**: JRE主要由以下几个部分组成: - Java虚拟机(JVM):负责解释并执行Java...

    jre1.8 64bit精简.zip

    JRE1.8环境64位精简版,jre1.8 64位其实就是jre 8,它的全称为Java SE Runtime Environment,这是由oracle推出的运行环境组件,安装后就可以运行一些热门的游戏和应用程序了,软件自带了简体中文语言,新版本的jre ...

    精简版jre1.8(wins 64位,附压缩教程)

    最近在写一个java开发的游戏,jre1.8.0_181整整有199mb,对于一个只有400多k的游戏来说,完全没必要,于是就进行精简,把jre精简到22.5mb,游戏也能正常运行。如果你急需使用精简的jre,可以下载试试。本来想精简到...

    jre8 官方精简的 compat

    在本文中,我们将深入探讨"jre8 官方精简的 compat"这一主题,了解其背后的含义、精简程度以及与Java运行环境的关系。 标题中的"jre8 官方精简的 compat"指的是Java Runtime Environment 8的一个特别版本,它经过了...

    精简的jre的精简工具

    GreenJVMMake - CSDN下载 下载 这是一个配合GreenJVM使用的JRE精简工具,可以动态的获取应用程序中对于rt.jar的class依赖,并根据依赖关系自动构成精简后的rt.jar.

    精简版本JRE1.6免安装

    在运行特定软件前,最好先确认该软件是否兼容此精简版JRE。如果遇到问题,可能需要考虑使用完整版JRE或更高版本。同时,鉴于Java 1.6已不再接受安全更新,对于处理敏感数据或运行在公共网络上的应用程序,建议使用...

    精简后jre(1)

    "精简后jre(1)"指的是经过优化和裁剪的JRE版本,通常是为了减少体积、提高运行效率或针对特定应用场景定制。 在Java开发中,JRE扮演着至关重要的角色。它提供了运行Java程序所需的环境,包括: 1. **Java虚拟机...

    JDK8精简版 单独JRE运行环境

    自己开发的java程序要在别人电脑上运行吧!但是给别人电脑装完整jdk是不是太“重”了呢?这个单独提取的jre可以帮你。Windows上运行可以创建bat放jre当前目录:@echo off %cd%\jre\bin\java.exe -jar %cd%\xxx.jar

    JRE精简工具(超级好用,含使用说明)

    "JRE精简工具"就是为了解决这个问题而设计的,它可以帮助开发者定制化自己的JRE,去除不必要的部分,只保留运行特定应用所需的最小功能集。 这个工具包包含以下文件: 1. `make.bat`:这是一个批处理脚本,通常...

Global site tag (gtag.js) - Google Analytics