减少外部jar文件大小

joe*_*moe 8 java size jar

我为Java项目开发了一个模块.该模块依赖于外部库(fastutil).问题是,fastutil.jar文件比整个项目本身重了几倍(14 MB).我只使用库中的一小部分类.该模块现已完成,未来任何人都不可能扩展它.有没有办法我只能将相关的课程提取到一些,fastutil_small.jar以便其他人不必下载所有这些额外的重量?

Joa*_*uer 8

诸如ProGuard之类的混淆工具通常提供从jar文件中删除未使用的类(甚至字段和方法)的功能.但是,您必须小心验证一切仍然有效,因为您可能正在使用reflecton来访问ProGuard无法分析的类或方法.

您只能使用该功能,并且已经节省了很多

或者您可以将它与其他节省空间的混淆技术(例如类和方法重命名)结合起来,以更难调试的代价来节省更多空间(您的堆栈跟踪将变得难以解析).


Thi*_*ilo 5

从fastutil 的安装说明:

请注意,jar文件很大,因为有大量的类:如果你计划运送你自己的jar包含一些fastutil类,你应该看看AutoJar(也可以在JPackage中使用)自动提取必要的类.