可执行JAR包精简器

有时候,我们开发一个小工具,不得不依赖一些第三方库,而且只用到第三库很小一部分功能,但我们导出的可执行JAR就胖了好多。
为了追求极致,在空闲时间开发了这个小工具,可以用来精简依赖的第三方包体积,从而使我们的JAR变瘦。

使用

1)选择需要精简的JAR文件,支持拖拽。
2)填写需要精简的包前缀,指明哪些第三方包需要精简。
3)点击简化按钮,会运行可执行JAR,操作所有功能,完成数据收集。
4)自动化精简。
5)点击运行按钮,操作所有功能,验证软件是否能正常工作。
6)精简完成。

原理

一个可执行JAR包中,永远都不可能被加载的类,是无用,可删除的。

那么,我们只要找出有可能会被加载使用的类,然后删除永久不会被加载的类,再重新打包不就达到精简的目的。

收集类加载日志:java -verbose:class -jar runable.jar
启动另一个进程:java.lang.ProcessBuilder

其他

原文地址:https://www.cnblogs.com/kancy/p/13205226.html