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

Posted

技术标签:

【中文标题】Eclipse 中的 Java 项目:无法解析 java.lang.Object 类型。它是从所需的 .class 文件中间接引用的【英文标题】:Java project in Eclipse: The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files 【发布时间】:2013-08-07 04:10:57 【问题描述】:

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

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

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

【问题讨论】:

我做了“复制项目”,错误消失了 该行为仍然出现在 Luna Service Release 2 (4.4.2) 中。这里的方案还是可以解决问题的。 我在 android Studio 中遇到了这个问题,有什么解决方案吗? 【参考方案1】:

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

关闭项目并重新打开它。

清理项目(它将重建构建路径,从而重新配置 JDK 库)

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

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

【讨论】:

这里也一样。奇怪的 Eclipse 错误。正如链接所说,从项目的类路径中删除 JRE 库并重新添加它可以解决问题。 哦,世界上没有与 IBM 签订合同。 我在一个 Android 项目上遇到了这个错误,我点击 Android 工具 -> 修复项目属性修复了它。 Intellij 代替 net beans 或 Eclipse 2021 年了,Eclipse 仍然很烂。【参考方案2】:

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

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

【讨论】:

就我而言,这是因为我在导入项目时意外删除了 JRE [我的错]。这给了我解决问题的线索。 在我的情况下它根本不存在,所以我添加了它。 虽然这在我的情况下有效,解决了 8 个错误,但又给了我 33 个错误! 我在 Android Studio 中遇到了这个问题,有什么解决方案吗?【参考方案3】:

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

【讨论】:

【参考方案4】:

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

    右键项目>构建路径>配置构建路径... 选择“库”选项卡,您应该会看到带有错误的 Java 1.8 jre 选择 java 1.8 jre 并单击删除按钮 添加库...> JRE 系统库> 下一步> 工作区默认> 完成 单击“确定”关闭属性窗口 进入项目菜单>清理...>确定

等等,这对我有用。

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

我也试过了。但仍处于相同的错误状态。【参考方案6】:

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

如果不小于:

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

如果是,则比 .

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

【讨论】:

【参考方案7】:

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

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

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

【讨论】:

谢谢..它的工作原理..请解释一下它是如何工作的? @SinghArjun 我不确定,但我认为当项目保存时缺少导入时会发生这种情况。【参考方案8】:

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

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

如果你使用 Maven 会更快:

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

【讨论】:

【参考方案9】:

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

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

【讨论】:

【参考方案10】:

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

    右键单击项目 选择属性 点击安卓 勾选相应的项目构建目标 申请 |好的

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

【讨论】:

这和 Ripon Al Wasim 的回答一样,对吧?【参考方案13】:

解决我的问题是

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

C:/Java

代替

C:/Program Files/Java

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

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

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

代替:

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

祝你好运

【讨论】:

【参考方案14】:

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

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

【讨论】:

为什么它被否决了?请参阅我尝试了所有可能的解决方案,但仍然无法解决问题,然后我将代码移植到 NetBeans。我之所以回答这个问题,是因为如果有人挺身而出,在最坏的情况下,他(他)可能会得到帮助。 你可能是对的,但对我来说,在删除现有库并设置默认 jre 库、关闭项目、打开项目后,JNI/JNA 工作正常(对于 eclipse - 4.9.0)。【参考方案15】:

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

在日食中 第 1 步:属性 -> java 构建路径 -> jre 系统库(删除) 第二步:添加->jre系统库->备用jre->安装jre->添加->标准VM->(在jre home,放置jdk路径)->完成

现在清理并检查项目

【讨论】:

【参考方案16】:

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

【讨论】:

【参考方案17】:

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

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

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

【讨论】:

这为我解决了,但谁能帮我理解为什么?【参考方案18】:

我遇到了类似的问题。这是一个 maven 项目,具有以下 pom.xml 的 sn-p。

<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 版本。

【讨论】:

【参考方案19】:

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

【讨论】:

我试过这样做,但我还不能写 cmets。【参考方案20】:

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

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

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

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

【讨论】:

【参考方案21】:

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

【讨论】:

做 eclipse -> maven -> 更新应该是故障排除的步骤之一。【参考方案22】:

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

属性 -> 构建路径

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

【讨论】:

【参考方案23】:

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

【讨论】:

【参考方案24】:

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

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

右键单击您的项目

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

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

【讨论】:

【参考方案25】:

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

【讨论】:

【参考方案26】:

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

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

【讨论】:

以上是关于Eclipse 中的 Java 项目:无法解析 java.lang.Object 类型。它是从所需的 .class 文件中间接引用的的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 中的项目无法解析 Maven 依赖项中存在的 jars

java.lang.Enum 类型无法解析 - 在 Eclipse 中导入 Java 项目后出现错误

eclipse无法解析导入 java.util

从eclipse中的另一个java项目导入

eclipse项目中的java文件导入后变为空心J问题

Eclipse 和 Gradle 类路径不同步:无法解析为类型