如何减少罐子的大小

时间:2017-02-27 16:40:04

标签: java jar executable-jar

我包括一个49MB大小的库。但是,我只使用很少的功能,我不希望整个库出现在最后的jar中。我用过proguard。但是,我没有成功减少规模。

任何人都可以告诉我正确的工具,它可以智能地删除未使用的类/罐。

2 个答案:

答案 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

参考:Selecting contents for Uber jar