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

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

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


当前回答

不管这有多简单,请检查您的Java安装。对我来说,rt.jar丢失了。

在摆弄了半天Eclipse设置却一无所获之后,我发现了这一点。 绝望之下,我最终决定尝试从命令行编译项目。我不期望看到任何错误,因为我认为这是一个Eclipse的问题,但令我惊讶的是,我看到了这个:

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

我不知道我的Java安装发生了什么,rt.jar去了哪里。无论如何,这都是一个提醒,提醒你检查失败清单,并勾选所有的选项,不管它们有多不可思议。那会节省我很多时间。

其他回答

当我们使用tomcat 6和jdk 1.8版本时,一些特性将无法工作,您得到的这个错误就是其中之一。需要在eclipse中将JDK版本修改为稳定版本(最好是JDK 1.6或JDK 1.8_65)才能解决此错误。

在eclipse中 步骤1:属性-> Java构建路径-> jre系统库(删除) 步骤2:add -> jre system library -> alternate jre -> installed jre -> add -> Standard VM -> (in jre home, place jdk path) -> finish

现在清洗并检查项目

但是,我已经将路径设置为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

右键单击项目——>在导航器中显示 在导航视图中,您可以看到.classpath文件,删除该文件并构建项目。这对我很管用。 PS.如果你已经将eclipse项目与一些版本控制集成在一起,比如perfce /svn,那么在删除.classpath之前解除项目链接将会很有帮助。

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

如果不是:

右键单击您的项目->生成路径->配置生成路径 转到“图书馆”标签 添加库-> JRE系统库->下一步->工作空间默认JRE(或您可以从您的系统中选择替代JRE) ->完成

如果是,那么。

右键单击您的项目->生成路径->配置生成路径 转到“图书馆”标签 移除旧版本 添加库-> JRE系统库->下一步->工作空间默认JRE(或您可以从您的系统中选择替代JRE) ->完成