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


209

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

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

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


我做了“复制项目”,错误消失了
Srinath Ganesh 2014年

该行为在Luna Service Release 2(4.4.2)中仍然发生。这里的解决方案仍然可以解决问题。
恐惧

Answers:


243

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

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

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

    要么

  • 删除并重新导入该项目,并在必要时再次执行上述步骤。

更好的解决方法是尝试使用NetBeans代替Eclipse :-)


4
同样在这里。怪异的Eclipse错误。如链接所示,从项目的类路径中删除JRE库,然后重新添加它即可解决问题。
FelipeLeão2014年

哦,这个世界没有与IBM签约。
Zibbobz 2014年

1
我在Android项目中遇到了该错误,对我来说,单击Android工具->修复项目属性可以修复它。
洛伦兹2014年

@Zibbobz为什么我们需要与IBM签订合同。我仍然无法使用IBM Java解决此问题。
2014年

我想知道这是否与您更改JAVA_HOME环境变量有关?我已经更改了JAVA_HOME变量,这弹出了。我刚刚删除/添加了JRE库。
user2124871 '16

221

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

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

4
就我而言,这是因为导入项目时意外删除了JRE [我的错]。这给了我解决问题的线索。
GayashanNA 2014年

就我而言,它根本不存在,因此我添加了它。
Muhammed Refaat

1
虽然这对我来说有效,解决了8个错误,但又给了我33个错误!
严苛的Phoujdar

10

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


9

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

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

等等,对我有用。


7

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

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

您正在尝试在首选项中指向jdk而不是jre。工具栏-> windows-> preferences-> java->已安装的jre应该指向jre,而不是jdk。


我也尝试过。但是仍然处于相同的错误状态。
Blue Diamond

4

没有其他答案对我有用。但是这样做确实:

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

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


谢谢..它的工作..请给我解释一下它是如何工作的?
辛格·阿琼

@SinghArjun我不确定,但是我认为在保存导入丢失的项目时会发生这种情况。
Jack Pettinger 2014年

4

在Eclipse中使用早期版本的JRE之后,是否安装了其他版本的JRE。

如果不是:

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

如果是。

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

4

对我而言,无需进行任何清理,关闭/重新打开project&IDE,在构建路径中删除/添加JRE的工作。

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

如果使用的是Maven,它甚至更快:

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

3

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

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

3

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


2

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


这和Ripon Al Wasim的答案一样,对吗?
Nicolas Raoul

2

这似乎是一个Eclipse错误,尽管重新启动Eclipse对我来说很有用,但希望这也能对其他人有所帮助。


2

解决我问题的是

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

C:/Java

代替

C:/Program Files/Java

这是Windows中的一个已知问题。我也固定JAVA_HOME

2)我在笔记本电脑上使用Java 7和Java 8。因此,我使用定义了jvm eclipse.ini。如果您没有-vm输入,则这不是必需的步骤eclipse.ini。我更新了:

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

代替:

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

祝好运


1

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

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


为什么它被否决?看到我确实尝试了所有可能的解决方案,但仍然无法解决问题,然后将代码移植到NetBeans。我之所以回答是因为,如果有人坚持下去,在最坏的情况下,他(她)可能会得到帮助。
乔伊

您可能是正确的,但对我而言,在删除现有库并设置默认jre库,关闭项目,打开项目之后,JNI / JNA可以正常工作(对于Eclipse-4.9.0)。
Ajay Kumar

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路径)->完成

现在清理并检查项目


1

我收到此错误的原因是,我已经安装了“ Enterprise Java Developers的Eclipse IDE”,我卸载了它并安装了“ Java Developers的Eclipse IDE”。问题为我解决。


0

我在eclipse中安装了一些更新后出现在我身上,但是后来忘记了重新启动。因此,重新启动Eclipse可能会有所帮助。


我曾尝试这样做,但目前尚不允许发表评论。
NotX

0

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

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

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

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


0

在Eclipse Java编译器中取消选中“用户”-“释放选项”后,它为我工作

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

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


0

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


进行Eclipse-> Maven->更新应该是排除故障的步骤之一。
Vaibs

0

在我的情况下,这是一个很大的模块化项目,而“ 红色X ”仅在父项目中显示。我去了母项目

属性->内置路径

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.