压缩Jre

[url]http://freyja.iteye.com/blog/1982568[/url]

最近做了点小东西,给人运行的时候不可能几kb的程序 还要附带一个100M的jre吧.

so,参照网上的一些做法.
再加工了一下,整出了个4mb大小的JRE
2个版本:
一种适合greenJvm的jre, jar被pack200压缩过

另外一种则是普通的jre

似乎只支持awt swing 不支持socket 等功能

GreenJVM 的提取rt.jar 功能老是失败.不清楚是为什么,可能用到了jni之类的东西吧.
有更好的方法请告诉我下
greenvm按照作者说的做一开始没成功,

因为几点:

1.作者似乎没说清楚步骤

实际上应该是:

解压后的文件夹内GreenJVM.exe 和 vm.cfg是最重要的



最好是新建一个单独的文件夹,把这2个文件放进去

然后打开vm.cfg 一行行的查看配置

其中关注 SET_VM_NAME SET_START_JAR_PATH 和 SET_START_MAIN_CLASS

其他的不用修改

SET_VM_NAME 就是 jre的压缩文件位置, GreenJVM会解压这个压缩文件 变成 jre目录.

然后 如果jre的lib文件夹里面有pack200文件,它会解压成jar文件.例如 rt.jar 压缩成 rt.pack200 在这里又被解压缩成rt.jar



SET_START_JAR_PATH 就是要运行的jar文件



SET_START_MAIN_CLASS 就是main函数



作者给了2个工具,一个greenjvm_make 用来提取 rt.jar 一个pack200 用来压缩jar.但是这个pack200似乎无效.

可以自行写个main方法 进行压缩

例如:


Java代码 复制代码 收藏代码
public static void main(String[] args) throws Exception {
Packer packer = Pack200.newPacker();
OutputStream output = new BufferedOutputStream(new FileOutputStream( "out/rt.pack200"));
packer.pack(new JarFile("out/rt.jar"), output);
output.close();

}

GreenJVM是好东西,他大致上可以认为做了3件事

1.解压jre.7z 压缩和pack200文件

2.设置jre的环境变量?

3.执行jar
[url]http://freyja.iteye.com/blog/1982578[/url]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值