我包括一个49MB大小的库。但是,我只使用很少的功能,我不希望整个库出现在最后的jar中。我用过proguard。但是,我没有成功减少规模。
任何人都可以告诉我正确的工具,它可以智能地删除未使用的类/罐。
答案 0 :(得分:0)
Java SE 5和6已经提供了一个名为" pack200"的打包工具。此工具能够压缩已存在的jar文件,然后可以将其用于网络分发。我使用以下命令压缩了rt.jar:
C:\ Program \ Java \ jdk1.6.0 \ jre \ lib> pack200 -J-Xmx256m rt.jar.gz rt.jar
需要标志-J-X ..因为否则可能发生OutOfMemory异常(pack200是用Java编写的......) 结果令人惊讶:
原始大小:43.8 MB 压缩尺寸:5.81 MB
打开包装工具" unpack200"可以使用。
工具包200特别适合分发WebStart应用程序以实现更快的下载时间。已经有另一个众所周知的样本 - 玻璃鱼。在第二个安装阶段,glassfish使用unpack200工具解压缩内部库...
font:http://www.adam-bien.com/roller/abien/entry/how_to_reduce_the_jar
答案 1 :(得分:0)
如果您有Maven项目,则可以使用maven-shade-plugin
,其配置名为minimizeJar
。
您可以通过以下方式将minimizeJar
的{{1}}配置选项与应用的maven-shade-plugin
阶段绑定:
package