3

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

有没有办法使用 Eclipse 自动解决这个问题?


更新:后来我发现添加您拥有的所有 JAR,并使用 Ctrl-T(查看/定位类型),可以让您手动定位 JAR。这就是谷歌迄今为止提供的解决方案。有没有更好的办法?

4

3 回答 3

5

如果您参考此 SO 问题Findunused jars used in an eclipse project,您还可以:

ClassPathHelper,可以快速关注未解析的类:

未解决

它会自动识别孤立的 jars、阻塞(模糊)的类等等。

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

于 2009-01-26T05:00:38.190 回答
1

我发现设置一个专门用于浏览 Eclipse 源代码的工作区非常有用。通过这种方式,您可以像使用您自己的插件项目一样使用 PDE 工具,如 Plug-in Spy、捆绑依赖分析、浏览文档等。我在 Vogella 发现这篇文章是一个非常有用的指南。

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

编辑

  • 从您的问题来看,您并不清楚要在其中运行编译器的环境。如果您对在 OSGi 环境之外运行的可嵌入 Java 编译器感兴趣,我可以建议Janino
于 2009-01-26T15:12:39.013 回答
0

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

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

于 2009-01-26T03:50:38.813 回答