我编写的应用程序使用了多个第三方 jar。有时只使用整个 50kB 到 1.7mB jar 的一小部分 - 一个或两个函数调用或类。
减少 jar 尺寸的最佳方法是什么。我应该下载源代码并构建一个只包含我需要的类的 jar 吗?哪些现有工具可以帮助实现自动化(例如,我简要地查看了 http://code.google.com/p/jarjar/)?
谢谢
编辑 1: 我想降低我的第三方“官方”jar 的大小,如 swingx-1.6.jar (1.4 MB)、set-3.6 (1.7 MB) glazedlists-1.8.jar (820kB) 等,以便它们只包含我需要的最低限度类(class)
编辑 2: 如果库使用反射,则手动或使用类似 proguard 的程序最小化 jar 会更加复杂。 Injection with google guice does not work anymore after obfuscation with proguard
另一个帖子cletus的回答很好How to determine which classes are used by a Java program?
最佳答案
Proguard将是一个选择。它可以消除未使用的类和方法。您还可以使用它进行混淆,这可以进一步减小最终 jar 的大小。请注意,除非注意保持受影响的类不被混淆,否则按名称加载类很容易中断。
我发现 Proguard 非常有效 - 一开始可能有点难以理解。但是我没有任何类似的经验可以提供比较。
关于java - 最小化 jar 依赖大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817666/