如何确定应用程序中使用的JAR

Ale*_*ipe 15 java jar

现有应用程序在其类路径中有大量JAR文件.有人必须最初添加所有JAR才能确定.一些JAR显然没有被使用,我们已经删除了一些不需要的JAR而没有造成任何问题.

如何确定使用哪些JAR以及哪些JAR不需要(除了试错法)?

mic*_*ebe 7

Tattletale是一个很好的工具.它适用于字节码,因此有可能通过反射使用某些类,并且不会出现在报告中.

这里(链接不再有效)是一个示例报告.如您所见,您只需拥有正在寻找" 未使用的JAR "的功能.


Gro*_*uez 6

请注意,单独的试验和错误可能是一个问题,特别是如果应用程序动态加载类(例如Class.forName),因为删除JAR可能不会阻止应用程序启动并且(显然)正常工作,但如果目标类是未找到.

此外,有许多工具可用于分析Java应用程序并找出依赖关系(我自己使用过Dependency Finder,虽然不完全用于此目的),但请注意,大多数工具也无法找到加载的类动态如上所述.