233

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

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

但是,我通过Window » Preferences » Java » Installed JREs在 Eclipse Kepler中将路径设置为C:\Program Files\Java\jdk1.6.0_41

4

26 回答 26

268

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

  • 关闭项目并重新打开它。

  • 清理项目(它将重建构建路径,因此重新配置 JDK 库)

    或者

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

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

于 2013-08-06T08:57:28.973 回答
258

以下步骤可能会有所帮助:

  1. 右键单击项目»属性»Java构建路径
  2. 选择选项卡
  3. 找到 JRE 系统库并将其删除
  4. 单击右侧的添加库...按钮 » 添加 JRE 系统库(Workspace 默认 JRE)
于 2014-02-11T06:12:17.833 回答
14

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

于 2013-08-28T17:40:37.710 回答
11

当我将一个 Java 1.8 项目从 Eclipse Luna 导入 Eclipse Kepler 时,这发生在我身上。

  1. 右键单击项目>构建路径>配置构建路径...
  2. 选择 Libraries 选项卡,您应该会看到带有错误的 Java 1.8 jre
  3. 选择 java 1.8 jre 并单击 Remove 按钮
  4. 添加库... > JRE 系统库 > 下一步 > 工作区默认值 > 完成
  5. 单击确定关闭属性窗口
  6. 转到项目菜单>清理...>确定

等等,这对我有用。

于 2014-09-30T11:02:42.203 回答
8

对象类是 java 中所有类的基类,如果您缺少它,则意味着您的构建路径中没有 jdk 库。我对 Kepler 了解不多,但您需要确保它指向正确的 jdk 用于编译和正确的 jre 以运行您的 java 应用程序。

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

您试图在您的首选项中指向 jdk 而不是 jre。toolbar->windows->preferences->java->installed jre 应该指向一个 jre 而不是 jdk。

于 2013-08-06T08:41:30.993 回答
8

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

如果不大于:

  1. 右键单击您的项目 -> 构建路径 -> 配置构建路径
  2. 转到“库”选项卡
  3. 添加库 -> JRE 系统库 -> 下一步 -> 工作区默认 JRE(或者您可以从系统中选择备用 JRE)-> 完成

如果是比。

  1. 右键单击您的项目 -> 构建路径 -> 配置构建路径
  2. 转到“库”选项卡
  3. 删除以前的版本
  4. 添加库 -> JRE 系统库 -> 下一步 -> 工作区默认 JRE(或者您可以从系统中选择备用 JRE)-> 完成
于 2016-12-29T09:34:10.983 回答
5

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

  1. 右键单击包资源管理器中的项目。
  2. 来源 > 清理...
  3. 下一步 > 完成

当我这样做时,Eclipse 将导入添加到我的一个类中。我认为这是因为我保存了缺少导入的项目,可能下班后急于回家。

于 2014-01-30T15:27:05.737 回答
4

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

编辑:下次我遇到这个问题时,上面的解决方案不起作用 - 问题是我导入的项目 - 有错误的 java 运行时集 - 不存在(我的 JRE 中有 java 8,但项目导入的设置为 Java 11,因此我不得不将项目 Java 版本更改为 8。替代方法是在 Eclipse 首选项中添加更多 JRE - 如果项目确实需要更新的 JRE 才能工作)

于 2016-05-05T17:58:43.850 回答
4

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

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

如果您使用 Maven,它会更快:

  1. 关闭 Eclipse(无需删除项目)
  2. mvn clean eclipse:clean eclipse:eclipse
  3. 打开 Eclipse。您的项目仍然存在,问题应该消失了。
于 2016-10-27T04:02:31.063 回答
3

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

  1. 右键单击项目
  2. 选择属性
  3. 点击安卓
  4. 勾选适当的项目构建目标
  5. 申请 | 好的
于 2014-08-30T22:40:11.113 回答
3

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

于 2015-02-08T19:38:47.503 回答
2

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

于 2014-12-01T14:06:38.450 回答
2

解决我的问题是

1)安装jdk目录下不带空格:

C:/Java

代替

C:/Program Files/Java

这是 Windows 中的一个已知问题。我也修好JAVA_HOME

2)我在笔记本电脑上安装了 java 7 和 java 8。所以我使用eclipse.ini. 如果您-vmeclipse.ini. 我更新了:

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

代替:

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

祝你好运

于 2016-06-15T11:12:52.207 回答
2

我有类似的问题。这是一个带有以下 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 版本。

于 2021-02-10T13:18:58.847 回答
1

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

无法在 Eclipse 中添加 JNI/JNA 文件夹中的所有类文件(JAVA,Windows 7)

于 2015-04-30T12:12:34.230 回答
1

当我们使用 tomcat 6 和 jdk 1.8 版本时,某些功能将无法使用,而您遇到的这个错误就是其中之一。您需要在 eclipse 中将 jdk 版本更改为稳定版本(首选 jdk 1.6 或 jdk 1.8_65)以解决此错误。

在 Eclipse 步骤 1:属性 -> java 构建路径 -> jre 系统库(删除)步骤 2:添加 -> jre 系统库 -> 备用 jre -> 安装的 jre -> 添加 -> 标准 VM -> (在 jre 主页中,放置jdk路径)->完成

现在清理并检查项目

于 2017-05-23T04:07:17.027 回答
1

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

于 2019-06-19T11:15:09.823 回答
1

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

在 Eclipse 步骤 1 中:属性 -> java Complier -> uchecking 'User '--releae option' 选项 -> 完成

Java 版本 13.0.1 Eclipse 版本:面向企业 Java 开发人员的 Eclipse IDE。

于 2019-12-22T05:20:35.893 回答
0

在我在 Eclipse 中安装了一些更新但之后忘记重新启动后发生在我身上。所以也许重新启动 Eclipse 可能会有所帮助。

于 2018-04-12T09:27:19.553 回答
0

无论这多么微不足道,请检查您的 Java 安装。对我来说,rt.jar 不见了

我在 Eclipse 设置中摆弄了半天却一无所获后发现了这一点。无奈之下,我终于决定尝试从命令行编译项目。我没想到会出现任何问题,因为我认为这是一个 Eclipse 问题,但令我惊讶的是,我看到了这个:

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

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

于 2019-01-07T06:33:11.587 回答
0

右键单击项目,选择 Maven -> 更新项目。那应该可以解决问题。

于 2020-01-20T10:09:26.370 回答
0

就我而言,这是一个大型模块化项目,“红色 X ”仅在父项目中显示。我去了父项目

属性 -> 构建路径

a 删除了那里的 JRE 库,就这样,父项目上不再有 JRE 库了。

于 2020-02-21T11:03:27.350 回答
0

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

于 2020-05-04T05:31:28.843 回答
0

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

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

右键单击您的项目

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

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

于 2020-09-24T16:43:52.397 回答
0

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

于 2021-07-21T03:15:58.477 回答
0

当类/java-project 无法解析正确的 JDK 库时,会出现此错误消息。比如说,在我的主要项目 A 中,我遇到了这个错误。这个项目 A 对项目 B 有一个 Maven 依赖项。项目 B 指向 JDK-11。项目 A 指向 JDK-9

我所做的更正:Made Project 也指向 JDK-11。它为我解决了这个问题

于 2022-01-29T10:53:09.247 回答