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

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


当前回答

听起来这是一个已知的问题(Bug 67414),在3.0已经解决了……有人评论说他们在3.4中也会遇到这种情况。

与此同时,解决方法是从项目中删除JRE系统库,然后再将其添加回来。以下是步骤:

Go to properties of project with the build error (right click > Properties) View the "Libraries" tab in the "Build Path" section Find the "JRE System Library" in the list (if this is missing then this error message is not an eclipse bug but a mis-configured project) Remove the "JRE System Library" Hit "Add Library ...", Select "JRE System Library" and add the appropriate JRE for the project (eg. 'Workspace default JRE') Hit "Finish" in the library selection and "OK" in the project properties and then wait for the re-build of the project

希望这个错误能得到解决。

其他回答

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

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

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

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

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

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

我在Eclipse 4.4.2中遇到过一个有趣的案例。我的项目(P1)引用了一个外部类(项目P2),它有两个同名但参数类型不同的方法:

public static void setItem(Integer id) …
public static void setItem(Item item) …

类型Item包含在第三个项目P3中,我不想在这里看到它。P1只调用了第一个方法:

ExternalClass.setItem(Integer.valueOf(12345));

因此,使用Item类的第二个方法没有被使用,而且P3确实不在编译类路径中——如果没有被使用,为什么要使用它呢?

Eclipse告诉我

The type ...Item cannot be resolved.
It is indirectly referenced from required .class files

从命令行编译不会产生任何此类问题。更改第二个方法的名称(此处未使用!)也使这个问题在Eclipse中消失了。

它的意思是:“您使用的类需要不在类路径上的另一个类。”您应该确保(如Harry Joy所建议的)将所需的jar添加到类路径中。