你如何弄清楚哪些JAR依赖于哪一个?

时间:2009-01-26 03:30:35

标签: java eclipse jar dependencies

我正在尝试使用Eclipse JDT AST解析类。在包含初始JAR并整理出更多依赖项之后,它有7个以上的JAR并且我仍然有NoClassDefFoundError异常。每当我尝试使用很少或没有文档来测试库时,就会出现这种情况。试验和错误似乎是一种非常愚蠢(和讨厌)的方法来解决这个问题。

有没有办法使用Eclipse自动对其进行排序?


更新:后来我发现添加你拥有的所有JAR,并使用Ctrl-T(查看/定位类型),可以手动找到JAR。 Google迄今为止提供的That was the solution。还有更好的方法吗?

3 个答案:

答案 0 :(得分:4)

如果你参考这个问题Finding unused jars used in an eclipse project,你也有:

ClassPathHelper ,可以快速关注未解决的课程:

unresolved

它会自动识别孤儿罐,封锁(模糊)类等等。

唯一的限制是未在类中定义的依赖项,例如在依赖注入框架配置文件中。

答案 1 :(得分:1)

我发现专门为浏览eclipse源代码设置工作区非常有用。通过这种方式,您可以使用PDE工具,如插件间谍,捆绑依赖性分析,浏览文档等,就像您自己的插件项目一样。我发现this article at Vogella是一个非常有用的指南。

如果您知道所需类的哪个包,则可以通过创建新的OSGi启动配置来生成依赖项的传递闭包,只选择单个包。点击Add Required按钮,您可以看到使用您感兴趣的所有捆绑包。

修改

  • 从您的问题来看,您想要运行编译器的环境尚不清楚。如果您对可嵌入的Java编译器感兴趣在OSGi环境之外运行,我可以建议Janino

答案 2 :(得分:0)

您可以使用依赖性分析器,如: JarAnalyzer

这将解析一个充满Jars的目录,并为您提供一个XML输出依赖关系图,其中有几个工具可以以图形或文本形式显示。