JRE成长了,也胖了不少。一个大而全的大世界,不适合所有的人。
写了个小界面,却要带着如此肥胖的JRE,是很不划算的。
那麽,如何做到让JRE瘦身呢?
下面的步骤,如果是简单的程序,可以做到几百K。
//最理想的思路:
// 0、用 java -verbose:class xx.xx.xxx 运行一次,各个功能都试一遍,得到 used_class.txt
// 1、建立.zip的缓冲(作用是打开.jar,以解压.jar里面的.class)
// 2、找出 XXXX.jar]对应的jar并打开放入.zip缓冲
// 3、根据 XXXX.jar]和[load XXX.XXXX 解压指定的文件到目录
// 4、重新 jar cf 打包
// 暂不处理目录中的.class
减肥是不是很容易呢?已经测试过,确有成效。
还有一些基本必需的地方的:
bin/java.exe、jli.dll、management.dll、msvcr71.dll、msvcrt.dll、net.dll、nio.dll、unpack.dll、verify.dll、zip.dll、w2k_lsa_auth.dll、dcpr.dll、hpi.dll、awt.dll
bin/client/jvm.dll
lib/ext/*
lib/i386/*
lib/zi/*
lib/fontconfig.98.bfc、fontconfig.bfc
缺点是没成处理 .jar 中的某些资源的,可根据解出来的目录,人工去找一下是否需要COPY了。
有基本的code,但没整理、没注释——暂不贴上来,请见谅。