知识大全 如何制作最小的RCP程序压缩包

Posted 文件

篇首语:智慧并不产生于学历,而是来自对于知识的终生不懈的追求。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何制作最小的RCP程序压缩包相关的知识,希望对你有一定的参考价值。

如何制作最小的RCP程序压缩包  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  如果开发完了一个RCP应用程序 要安装到客户端 那么这个安装文件会有多大呢 我们当然希望是越小越好

  我们先算一下普通方式下的文件大小

  jre 安装程序 M

  rcp runtime M

  rcp应用程序(包含用到的第三方的lib) 此处假设 - M

  那么将这些文件打成包后的大小将为 M左右 一个普通的rcp安装程序居然会有这么大 这实在有点令人难以接受

  难道就不能再小一点吗?我们多么希望有一个小巧的RCP安装程序啊 答案是肯定的 我们完全可以将RCP安装程序控制在 M以内 甚至更小

  此处只介绍如何压制一个最小的RCP压缩包 至于如何制作安装程序 已经超出了讨论的范畴 只要有了最小的压缩包 不论用何种安装程序 都可以制作出 M以下的RCP安装程序

  第一步 jre 减肥

  jre 安装程序有 M 这可是一个大东西 客户想要运行RCP程序 首先就要安装JRE 这也是很多客户反感的 jre里面包含了太多的东西 很多是rcp程序根本用不到的 比如swing库 如果全是用swt开发 swing包就多此一举了 而且JRE的安装程序也不见的那么健壮 笔者就曾经两次遇到在不同的机器上不能成功安装jre的情况 而且通过添加删除程序也删不掉 非常烦人 其实完全没有必要安装JRE 只需要在rcp安装目录下建一个jre目录 里面包含jre用到的文件就可以了 rcp程序启动时 会首先查找当前目录下有没有jre目录 如果有 就用里面的jre 如果没有才去注册表查找jre 接下来 我们看看这个jre目录里面都有哪些东西 一些不要的统统删掉 至于删掉哪些 要根据情况而定 这个需要反复实验才能确定哪些有用 哪些没用 最后bin目录笔者保留了必须的dll和exe文件 llib目录里面 只保留了rt jar和charsets jar这两个库 但是rt jar还是太大了 M 既然要减肥 那就彻底减到底吧 用winrar或者其他解压缩工具打开rt jar 看看哪些包里面的class不需要 就统统删掉 例如 客户端不需要swing javax swing包干掉 客户端不需要rmi javax rmi包干掉 删来删去 最后rt jar变成了 多M charsets jar这个包也挺大 M 里面包含了不同的字符集编码 其实很多字符集都用不到 根据情况挑选你所用的吧

  到了这一步 jre已经瘦了一圈了 但还是不能达到我们的目的 如果用普通的压缩工具压缩jre目录后 基本可以达到 到 多M 这离我们的目标还差好大一快呢 jre还的减肥 这次狠一点 拿出我们的杀手武器pack pack 是java 自带的(在jre\\bin\\目录下)一个针对class文件进行压缩的工具 由于专门针对class文件进行了优化 压缩比高的惊人(当然速度也比普通压缩软件慢多了)pack 的用法请自行参考相关文档 先用pack 把rt jar 和charsets jar压缩一下 然后用其他压缩软件对jre整个目录压缩一下 压缩后的大小让你吃惊 如果用rar 压缩出来的是 M zip高一些 M 可能是笔者删的东西太多了 所以会这么小 但这里还包含一个 M的charsets jar文件 笔者试过 如果不包括charset jar 用rar压缩后大小为 M 这实在太惊人了 有谁能想象一个只有 M的JRE 遗憾的是charset jar是必须的 你可以删掉里面一些不要的字符集这样能压出来的jre也再 M M之间 必须注意的是 解压缩的时候 还要用pack 解开压缩后的jar文件 整个步骤就是压缩两遍 第一遍用pack 压缩所有的jar文件 第二遍再用一个其他压缩软件压缩jre目录 这样就能得到一个很小的jre压缩包

  看到这里 有人开始怀疑 这个 M多的JRE能用吗?笔者就曾将这个jre放到eclipse目录下 eclipse启动一切正常 进去后可以继续写我的java代码 还可以编译java文件(其实eclispe本身不需要tools jar 它自己就带了一个很强的java编译器) 从cvs下载文件也不成问题 试了一圈 没发现有什么出错的地方 当然 包不齐 少了那个class文件 就会出错了 所以删除class文件的时候 尽量不要多删 如果你很熟悉每个class文件的用途 就可以放心的去删了 如果SUN能出一个 MINI JRE 那就更好了

  第二步 RCP插件减肥

  记不清从eclipse 起的那个版本 已经开始支持将插件打包成一个jar文件 甚至这个插件里面包含着其他的jar文件 这在 以前只能创建一个插件目录 既然插件可以打包成jar文件 那么pack 就派上用场了 同压缩jre一样 此处就不在叙述了

  值的注意的问题是 有的插件jar文件里面包含一个目录lib lib里面又包含了其他的jar文件 那么用pack 对这个插件jar压缩的时候 lib里面的jar文件是不会压缩的 这个也不是什么问题 只要写个小程序 对lib里面的jar文件压缩一下就行了

  笔者实验的所做的RCP的插件压缩后的大小为 M多 这里面包括rcp runtime 必须的插件 以及自己开发的rcp程序 用到的第三方库 以及eclipse的一些插件emf gef jface databinding等 这些加起来压缩后总共 M多 如果你用的插件不是那么多 压缩后的肯定更小 这样加上jre 整个程序控制在了 M以内

cha138/Article/program/Java/JSP/201311/19715

相关参考

知识大全 怎么建立压缩包

怎么建立压缩包你需要一个压缩软件:【好压】【360压缩】【快压】【Winrar】等然后就可以打包了。如何建立压缩包使用压缩软件即可建立压缩包。推荐使用国产的好压压缩软件~推荐你使用好压压缩软件你可以去

知识大全 我手机屏幕为什么老是弹出解析包是出现错误

我手机屏幕为什么老是弹出解析包是出现错误安卓手机解析包时出现问题的解决方法:1、安卓apk程序解析包出现问题的话,可能是由于你下载的apk程序本身就有问题,程序的压缩包可能在下载过程中被损坏了,建议请

知识大全 为什么我的电脑解压不了压缩包?

为什么我的电脑解压不了压缩包?1,解压不成功--压缩包里有文件丢失或损坏--从新下载文件2,不会你没装解压软件吧,--下载解压缩软件如winrar为什么电脑解压不了压缩包楼主,你的这种情况绝大多数都是

知识大全 下载了个游戏有6个压缩包,解压出来变成了一个大压缩包,怎么么会这样子,我的游戏文件呢

下载了个游戏有6个压缩包,解压出来变成了一个大压缩包,怎么么会这样子,我的游戏文件呢?应该是可以删除的,要是不能确定的话可以在解压完之后弄一个桌面快捷方式之后把解压包挪到其他的文件夹里看看还好使不。压

知识大全 安卓手机里的压缩包可以删掉吗

安卓手机里的压缩包可以删掉吗?会影响手机使用吗?内存卡的压缩包删除没关系,但你要确认确实没用小米3手机里的压缩包可以删掉吗?删东西之前,先把名称复制一下,到百度搜或来问,看看是什么文件,确实知道没用了

知识大全 WINRAR压缩文件时勾选“创建固实压缩包”选项有什么好处

WINRAR压缩文件时勾选“创建固实压缩包”选项有什么好处?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 关于rar压缩包中exe文件解压后不显示的问题,急

关于rar压缩包中exe文件解压后不显示的问题,急!单独把exe拖到你解压的目录试试,如果没有提示覆盖的话,多半被杀毒软件杀掉了,关掉你的病毒防火墙实时监控。解压缩包后不显示解压后的文件你在该文件夹里

养鱼网箱装配程序

1)先按要求制作框架,框架推荐大小为30立方米以内,最小可为1立方米。过大不便于水体交换,影响氧气供给。  2)框架做好后再将网片绷紧固定在框架外,形成六面体的封闭网箱或五面体的敞口式网箱。网底再加一

养鱼网箱装配程序

1)先按要求制作框架,框架推荐大小为30立方米以内,最小可为1立方米。过大不便于水体交换,影响氧气供给。  2)框架做好后再将网片绷紧固定在框架外,形成六面体的封闭网箱或五面体的敞口式网箱。网底再加一

知识大全 下载完软件360扫描结果是没有危险,打开压缩包以后却报告木马,怎么回事?

下载完软件360扫描结果是没有危险,打开压缩包以后却报告木马,怎么回事?这个说明病毒隐藏的比较深,为了保险,建议你还是按360的提示处理一下,如果处理后软件不能用了,建议你换个地方下载。360扫描看到