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

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


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


这很可能是Eclipse搞混了,因为这是一个实际的错误。我忽略了这个错误,并运行了它所抱怨的endpointInterface的web服务,它运行得很好,除了每次我想要运行它时都必须处理对话框。只是另一个不透明的错误,什么也没告诉我。


当jar文件中的类不遵循与jar文件夹结构相同的结构时,就会发生此错误。

例如,如果你的类文件包含包com.test.exam,并且从这个类文件创建的classes.jar包含结构test.exam…将抛出错误。您需要纠正classes.jar的包结构,然后将其包含在eclipse构建路径中…


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

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


除了前面提到的类文件丢失的原因之外,此错误还可以指示存在重复的类文件,当构建路径上的类文件使用另一个在构建路径中具有多个定义的类时,eclipse将报告此错误。


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


我有时会遇到这种情况,我总是用“mvn eclipse:clean”命令来清理旧的属性,然后运行mvn eclipse:eclipse -Dwtpversion=2.0(当然对于web项目)。这里保存了一些旧的属性,所以eclipse有时会感到困惑。


In my case ,I created a project and made its minSdkVersion=9 and targetSdkVersion=17. I used automatically generated libs/android-support-v4.jar. I also had to make use of ActionBarActivity using android-support-v7-appcomapt.jar. So I just copied the android-support-v7-appcompat.jar file from android-sdk/extras/andrid/support/v7/appcompat/libs folder and pasted it to my project libs folder. And this caused the above error. So basically,I needed to put android-support-v4.jar file from android-sdk/extras/andrid/support/v7/appcompat/libs as well to my project libs folder. As per my knowledge the v7.jar file had dependencies on v4.jar file. So ,it needed it own v4.jarfile,instead of my project,automatically created v4.jar file.


快速而简单地我用这种方式修复了它(我使用ADT版本:v21.0.0-531062在Windows XP家庭版)

Opened manifest file. Changed the Existing project minSdkVersion to the same value as maxSdkVersion ( advise: it may be good to create a New project and see what is it's maxSdkVersion ) Save manifest file. Right Click the project and select Build Project. From top menu: Project - Clean.. - check Only the relevant project, below I checked Start a build immediately and Build only the selected projects and OK. open the java file - NO red errors anymore ! Back to step 1 above and changing Back minSdkVersion to it's Original value (to supoprt as many Android version as possible).

这很有效,但每隔几天问题就会复发。我做同样的事情,它解决了问题,让我发展。


既然你给我们的细节很少,很可能你所做的,这是一个非常容易犯的错误,而不是去

生成路径>配置生成路径>项目

然后从那里添加额外的项目文件夹,而不是

生成路径>配置生成路径>库

然后从那里添加你的项目文件夹。

如果你的代码是正确的,这是最肯定的情况,但通过ctrl+空格快捷键自动重新组织导入,而不是你的导入语句引用com.your。Additionalproject,你的引用都指向bin.com.your.additionalproject。

注意这个箱子。这意味着你通过将你的其他项目文件夹结构作为一个库来间接引用你的类,让你的IDE做所有的工作来查找你所引用的二进制类。

要纠正这一点,请从Libraries中删除该文件夹,并将其添加到Projects选项卡下,并重新组织导入。您的项目应该可以正常工作。


听起来这是一个已知的问题(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

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


我得到这个异常,因为eclipse在不同版本的jdk中工作,只是更改为正确的,清洁和构建并工作!


当我使用一个新的eclipse版本,并试图使用以前的工作空间,我使用旧的eclipse版本,这个错误发生。

下面是我解决这个问题的方法:

右键单击我的项目在包资源管理器->属性-> Java构建路径-> Libraries ->我看到一个错误(交叉签署)在JRE系统库。因为无法找到路径。->双击JRE System Library ->选择“Workspace Default JRE”选项->完成->确定。->它在工作

FYI.


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


我有这个错误,因为一个损坏的本地maven存储库。

因此,为了解决这个问题,我所要做的就是进入我的存储库,删除有关.jar所在的文件夹,然后在Eclipse中强制执行更新maven。


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

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

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

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


我在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中消失了。


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


什么为我修复它是右键单击项目> Maven >更新项目


对我来说,上面的解决方案都没用。 对我来说有用的是选择类中的所有代码,然后将其转换为注释, 保存,然后将其转换回正常文本,错误就消失了。


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

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

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

右键单击您的项目->属性->maven->活动maven配置文件(逗号分隔) 然后在该框中写入pom.xml并检查来自工作区项目的解析依赖项