Eclipse中的Java项目:无法解析java.lang.Object类型。它是从所需的.class文件间接引用的

时间:2013-08-06 08:36:37

标签: java eclipse

在Eclipse中导入项目后出现以下错误:

  

无法解析java.lang.Object类型。它是从所需的.class文件间接引用的

但是,我已经在Eclipse Kepler中通过菜单»窗口»首选项»Java»已安装的JRE将路径设置为 C:\ Program Files \ Java \ jdk1.6.0_41

24 个答案:

答案 0 :(得分:231)

这是一个令人烦恼的Eclipse Bug,似乎偶尔会咬人。有关可能的解决方案,请参阅http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html,否则请尝试以下操作;

  • 关闭项目并重新打开。
  • 清理项目(它将重建构建路径,从而使用JDK库重新配置)

    或者

  • 删除并重新导入项目,如有必要,请再次执行上述步骤。

更好的解决方法是尝试NetBeans而不是Eclipse: - )

答案 1 :(得分:202)

以下步骤可能有所帮助:

  1. 右键单击项目»属性»Java构建路径
  2. 选择标签
  3. 找到JRE系统库并将其删除
  4. 点击右侧的添加库... 按钮»添加JRE系统库(工作区默认JRE)

答案 2 :(得分:10)

以下是我如何解决它: 在Java-ADT中:Windows - 首选项 - Java - 已安装的JRE 只需添加另一个JRE,指向JDK文件夹下的'jre'文件夹。 (jre包含在jdk中)。确保选择了新的jre。

答案 3 :(得分:8)

当我从Eclipse Luna将Eclipse 1.8项目导入Eclipse Kepler时,发生了这种情况。

  1. 右键点击项目>构建路径>配置构建路径......
  2. 选择Libraries选项卡,您应该看到带有错误的Java 1.8 jre
  3. 选择java 1.8 jre并单击“删除”按钮
  4. 添加库...> JRE系统库>下一个>工作区默认>完成
  5. 单击“确定”关闭属性窗口
  6. 转到项目菜单>清洁...>行
  7. Etvoilà,这对我有用。

答案 4 :(得分:6)

Object类是java中所有类的基类,如果您缺少它,则意味着您的buildpath中没有jdk库。我不太了解开普勒,但你需要确保它指向一个正确的jdk进行编译,并且正确的jre用于运行你的java应用程序。

  

但是我已将路径设置为C:\ Program Files \ Java \ jdk1.6.0_41   eclipse Kepler toolbar-> windows-> preferences-> java->安装jre

您正试图在偏好中指向jdk而不是jre。 toolbar-> windows-> preferences-> java->安装的jre应该指向jre而不是jdk。

答案 5 :(得分:4)

其他答案都不适合我。但这样做了:

  1. 右键单击包资源管理器中的项目。
  2. 来源>清理......
  3. 下一个>完成
  4. 当我这样做时,Eclipse在我的一个类中添加了一个导入。我想这是因为我保存了我的项目,导致缺少导入,可能是下班后赶回家。

答案 6 :(得分:3)

无需清理,关闭/重新打开项目和IDE,在构建路径中删除/添加JRE对我有用。

我找到的解决方案是从Eclipse(而不是从磁盘)中删除项目,从磁盘中删除项目的Eclipse文件,然后再次导入Eclipse。这很有用。

如果您使用Maven,速度会更快:

  1. 关闭Eclipse(无需删除项目)
  2. 运行mvn clean eclipse:clean eclipse:eclipse
  3. 打开Eclipse。你的项目仍然存在,问题应该消失。

答案 7 :(得分:3)

右键单击项目 - >在导航器中显示 在导航器视图中,您可以看到.classpath文件,删除此文件并构建项目。这对我有用。 PS。如果你已经使用某些版本控制(如perfoce / svn)集成了eclipse项目,那么在删除.classpath之前取消链接项目将会很有帮助。

答案 8 :(得分:3)

另一个问题可能是未设置Android项目构建目标。

  1. 右键单击项目
  2. 选择属性
  3. 点击Android
  4. 勾选相应的项目构建目标
  5. 申请|行

答案 9 :(得分:2)

在添加控制器后,我在eclipse上遇到了play-java应用程序这个问题, 我通过构建路径删除并重新安装了JRE,然后删除并导入了我自动解决此问题的项目。  谢谢陀螺。

答案 10 :(得分:2)

这似乎是一个Eclipse错误,虽然重新启动Eclipse对我来说非常有用,希望这也有助于其他人。

答案 11 :(得分:2)

解决了我的问题是

1)在没有空格的目录下安装jdk:

C:/Java

而不是

C:/Program Files/Java

这是Windows中的一个已知问题。我还修复了JAVA_HOME

2)我的笔记本电脑上有java 7和java 8。所以我使用eclipse.ini定义了jvm。如果您的-vm中没有eclipse.ini条目,则这不是强制性步骤。我更新了:

C:/Java/jdk1.7.0_79/jre/bin/javaw.exe

而不是:

C:/Java/jdk1.7.0_79/bin/javaw.exe
祝你好运

答案 12 :(得分:2)

之后是否安装了不同版本的JRE,同时在Eclipse中使用以前版本的JRE。

如果不是:

  1. 右键点击您的项目 - >构建路径 - >配置构建路径
  2. 转到“图书馆”标签
  3. 添加库 - > JRE系统库 - >下一步 - >工作区默认JRE(或者您可以从系统中选择备用JRE) - >完成
  4. 如果是,则

    1. 右键点击您的项目 - >构建路径 - >配置构建路径
    2. 转到“图书馆”标签
    3. 删除以前的版本
    4. 添加库 - > JRE系统库 - >下一步 - >工作区默认JRE(或者您可以从系统中选择备用JRE) - >完成

答案 13 :(得分:1)

我在eclipse窗口遇到同样的问题,我无法从JNI添加依赖的.class文件。 为了解决这个问题,我将所有代码移植到NetBeans IDE。

Can not add all the classes files from the JNI/JNA folder in Eclipse (JAVA, Windows 7)

答案 14 :(得分:1)

虽然我们正在使用tomcat 6和jdk 1.8版本,但某些功能将无法正常工作,而您获得的此错误就是其中之一。你需要在eclipse中将jdk版本更改为稳定版本(首选jdk 1.6或jdk 1.8_65)以解决此错误。

在日食中

     第1步:属性 - > java构建路径 - > jre系统库(删除)      第2步:添加 - > jre系统库 - >备用jre - >安装jre - >添加 - >标准VM - > (在家里,放置jdk路径) - >光洁度

现在清理并检查项目

答案 15 :(得分:1)

我遇到了类似的问题。这是一个带有以下 pom.xml 片段的 maven 项目。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>9</release>
            </configuration>
        </plugin>
        </plugins>
    </build>

我必须更改以下内容。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>11</release>
            </configuration>
        </plugin>
        </plugins>
    </build>

如果您已经安装了 JDK 11 并使用 java 9 或 java 10 作为 maven 编译器,则 eclipse 无法检测到。因此,将发行版更改为 11 或实际安装的 JDK 版本。

答案 16 :(得分:0)

在我在eclipse中安装了一些更新但之后忘了重新启动之后,我很高兴。所以重启eclipse可能会有所帮助。

答案 17 :(得分:0)

这可能很琐碎,请检查Java安装。对我来说, rt.jar不见了

在用Eclipse设置花了半天时间之后,我发现了这一点。 绝望的是,我最终决定尝试从命令行编译项目。我没想到会出现任何错误,因为我认为这是Eclipse的问题,但令我惊讶的是,我看到了这一点:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

我不知道我的Java安装发生了什么,rt.jar去了哪里。无论如何,这提醒人们仔细检查失败列表并勾选所有复选框,无论它们多么令人难以置信。这样可以节省很多时间。

答案 18 :(得分:0)

我收到此错误,是因为我已经安装了“用于Java企业版开发人员的Eclipse IDE”,我卸载了它并安装了“ Java Java开发人员版的Eclipse IDE”。问题为我解决了。

答案 19 :(得分:0)

在Eclipse Java编译器中取消选中“用户”-“发布选项”后,它对我有用

在Eclipse步骤1中:属性-> Java编译器-> u选中“用户'-发布选项'选项->完成

Java版本13.0.1 Eclipse版本:适用于企业Java开发人员的Eclipse IDE。

答案 20 :(得分:0)

在我的情况下,这是一个大型模块化项目,而 red X 仅在父项目中显示。 我去了父项目

属性->内置路径

a在那里删除了JRE库,仅此而已,父项目上再也没有JRE库。

答案 21 :(得分:0)

这些解决方案都不适合我。就我而言,问题是我有一些Java代码可以生成.java文件,而我不小心创建了一个名为Class.java的文件(内容似乎无关紧要)。删除文件即可解决问题。

答案 22 :(得分:0)

但是我已将路径从eclipse Kepler工具栏-> windows-> preferences-> java->已安装的jre中设置为C:\ Program Files \ Java \ jdk1.6.0_41

如果您已经添加了JRE并且仍然显示错误。尝试跟随

右键单击您的项目

项目->构建路径->配置构建路径-> Java构建路径->库选项卡->选择JRE系统库,然后单击编辑按钮->如果选择了替代JRE,则选择工作区默认JRE。

这就是我的错误消失的方式。

答案 23 :(得分:0)

有时会在更新 JAVA 后发生此错误。如果是这样,请转到 eclipse 所在文件夹中的 eclipse.ini 文件。然后将-vm键下的那一行改成jre/bin文件夹的新路径,得到路径到programfiles->java->jre最新版本->bin文件夹复制路径并在-vm关键字下替换。