我包含一个49MB大小的库。但是,我只使用了一些功能,并且我不希望整个库存在于最终的jar中。我使用了proguard。但是,我并未成功缩小规模。如何减少jar大小
任何人都可以让我知道正确的工具,可以智能地删除未使用的类/罐子。
我包含一个49MB大小的库。但是,我只使用了一些功能,并且我不希望整个库存在于最终的jar中。我使用了proguard。但是,我并未成功缩小规模。如何减少jar大小
任何人都可以让我知道正确的工具,可以智能地删除未使用的类/罐子。
Java SE 5和6已经有一个名为“pack200”的打包工具。该工具能够压缩已经存在的jar文件,然后用于网络分发。我压缩使用以下命令的rt.jar中:
C:\程序\的Java \ jdk1.6.0 \ JRE \ lib文件> pack200 -J-Xmx256m rt.jar.gz的rt.jar
的标志 - JX ..是必要的,因为可能会出现内存溢出,否则异常(pack200是用Java编写...) 结果是惊人的:
产地大小:43.8 MB 压缩后的大小:5.81 MB
对于拆包可以使用工具“unpack200”。
对于WebStart应用程序的分发,工具包200特别有趣,可以实现更快的下载时间。已经有另一个众所周知的样品 - 玻璃鱼。在第二个安装阶段,GlassFish的解压使用unpack200工具内部的图书馆...
字体:http://www.adam-bien.com/roller/abien/entry/how_to_reduce_the_jar
如果你有一个Maven项目,你可以使用maven-shade-plugin
,有一个名为minimizeJar
配置。
可以由package
阶段应用程序的maven-shade-plugin
的minimizeJar
配置选项绑定:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
为什么你不在乎它有多大?考虑使用maven-shade-plugin,它具有此功能。 – bmargulies