在Eclipse中导入项目后,我得到以下错误:

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

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


当前回答

对我来说,再多的清理、关闭/重新打开项目和ide、删除/添加构建路径中的JRE都没用。

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

如果你正在使用Maven,它甚至更快:

关闭Eclipse(不需要删除项目) 执行命令mvn clean eclipse:clean eclipse:eclipse 打开Eclipse。您的项目仍然存在,问题应该已经解决了。

其他回答

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

关闭项目并重新打开。 清理项目(它将重新构建构建路径,从而使用JDK库重新配置) 或 删除并重新导入项目,如有必要,再次执行上述步骤。

更好的治疗方法是尝试NetBeans而不是Eclipse:-)

这些方法对我来说都没用。在我的情况下,问题是我有一些Java代码生成。Java文件,我不小心创建了一个名为Class.java的文件(内容似乎并不重要)。删除文件解决了这个问题。

我也有类似的问题。这是一个maven项目,包含以下pom.xml片段。

<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的实际安装版本。

但是,我已经将路径设置为C:\Program Files\Java\ jdk1.6.0_41,来自eclipse开普勒工具栏->windows->首选项->java->installed jre

如果您已经添加了JRE,但仍然显示错误。试着跟随

右键单击您的项目

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

我的错误就是这样消失的。

对于Gradle用户,使用eclipse插件。我没有直接使用eclipse,而是在Neovim上使用jdtls。这为我解决了问题。

build.gradle

plugins {
    id 'java'
    id 'eclipse'
}

然后运行

gradle cleanEclipse eclipse