我在Eclipse中出现了一个错误。这个错误信息是什么意思:

无法解析iglu.ir.TermVector类型。它是从必需的.class文件中间接引用的


当前回答

将Build路径中的JRE指向JDK。这对我很管用。

其他回答

如果您的设置仍然没有发现任何错误,您可以尝试Project -> Clean并清理工作区中的所有项目。

编辑:抱歉,没有看到verbose_mode的建议…同样的事情

我得到的错误,当我只是改变一些svn设置,而不是在代码中的任何东西。只是清理项目修复了错误。

对我来说,当我使用已经使用了很长时间的旧jar集将jdk升级到1.8.0_60时,就会发生这种情况。如果我回到jdk1.7.0_25,所有这些问题都消失了。这似乎是JRE和库之间的兼容性问题。

在我的例子中,问题是“javax.ws.rs”。在Tomcat中启动web应用程序时,执行webapplicationexception无法解决。

添加以下库(Maven)的解决方案:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>

在我的例子中,这是因为我在pom.xml文件中添加了一个新的依赖项。

新的依赖项依赖于旧版本的库(2.5)。我的pom.xml中的另一个库需要相同的库,但它需要3.0版本。

出于某种原因,当Maven遇到这些冲突时,它会简单地忽略最新的版本。在Eclipse中查看pom.xml时,您可以选择底部的“依赖层次结构”选项卡,以查看依赖关系是如何解析的。在这里,您将发现是否因为这个原因而忽略了所讨论的库(以及类)。

在我的例子中,这就像锁定新版本一样简单。您可以通过右键单击该条目来做到这一点—在上下文菜单中有一个选项可以将其锁定。