Java-Projekt in Eclipse: Der Typ java.lang.Object kann nicht aufgelöst werden. Es wird indirekt aus erforderlichen .class-Dateien referenziert

209

Nach dem Importieren eines Projekts in Eclipse wird folgende Fehlermeldung angezeigt:

Der Typ java.lang.Object kann nicht aufgelöst werden. Es wird indirekt aus erforderlichen .class-Dateien referenziert

Ich habe jedoch den Pfad in Eclipse Kepler über Fenster »Einstellungen» Java »Installierte JREs als C: \ Programme \ Java \ jdk1.6.0_41 festgelegt .

Blauer Diamant
quelle
Ich habe "Projekt kopieren" und Fehler verschwunden
Srinath Ganesh
Das Verhalten tritt weiterhin in Luna Service Release 2 (4.4.2) auf. Die Lösung hier kann das Problem weiterhin lösen.
Phobie

Antworten:

243

Dies ist ein nerviger Eclipse Bug, der ab und zu zu beißen scheint. Eine mögliche Lösung finden Sie unter http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html. Andernfalls versuchen Sie Folgendes.

  • Schließen Sie das Projekt und öffnen Sie es erneut.

  • Bereinigen Sie das Projekt (Der Buildpfad wird neu erstellt und somit mit den JDK-Bibliotheken neu konfiguriert.)

    ODER

  • Löschen Sie das Projekt, importieren Sie es erneut und führen Sie die obigen Schritte gegebenenfalls erneut aus.

Die bessere Heilung ist, NetBeans anstelle von Eclipse zu versuchen :-)

Gyro Gearless
quelle
4
Hier gilt das gleiche. Bizarrer Eclipse-Fehler. Wie der Link sagt, wird das Problem behoben, indem die JRE-Bibliothek aus dem Klassenpfad des Projekts entfernt und erneut hinzugefügt wird.
Felipe Leão
Oh, für eine Welt, die keine Verträge mit IBM hatte.
Zibbobz
1
Ich hatte diesen Fehler in einem Android-Projekt, indem ich auf Android Tools -> Fix Project Properties klickte, wurde er behoben.
Lorenz
@Zibbobz warum brauchen wir einen Vertrag mit IBM. Ich kann dies mit IBM Java immer noch nicht beheben.
Anand
Ich frage mich, ob dies damit zusammenhängt, wann Sie die Umgebungsvariable JAVA_HOME ändern. Ich hatte meine JAVA_HOME-Variable geändert und diese tauchte auf. Ich habe gerade die JRE-Bibliothek entfernt / erneut gelesen.
user2124871
221

Die folgenden Schritte könnten helfen:

  1. Klicken Sie mit der rechten Maustaste auf Projekt »Eigenschaften» Java Build Path
  2. Wählen Sie die Registerkarte Bibliotheken
  3. Suchen Sie die JRE-Systembibliothek und entfernen Sie sie
  4. Klicken Sie rechts auf die Schaltfläche Bibliothek hinzufügen ... »JRE-Systembibliothek hinzufügen (Arbeitsbereich-Standard-JRE)
Ripon Al Wasim
quelle
4
In meinem Fall ist es aufgetreten, weil ich die JRE beim Importieren des Projekts versehentlich entfernt habe [meine Schuld]. Dies gab mir einen Hinweis, um das Problem zu beheben.
GayashanNA
in meinem Fall war es überhaupt nicht vorhanden, also habe ich es hinzugefügt.
Muhammed Refaat
1
Obwohl dies in meinem Fall funktionierte, löste es 8 Fehler, gab mir aber weitere 33!
Harte Phoujdar
10

So habe ich es gelöst: In Java-ADT: Windows - Einstellungen - Java - Installierte JREs Fügen Sie einfach eine weitere JRE hinzu und zeigen Sie auf den Ordner 'jre' unter Ihrem JDK-Ordner. (jre ist im jdk enthalten). Stellen Sie sicher, dass Sie das neue jre gewählt haben.

Andy Zhang
quelle
9

Dies ist mir passiert, als ich ein Java 1.8-Projekt von Eclipse Luna in Eclipse Kepler importiert habe.

  1. Klicken Sie mit der rechten Maustaste auf Projekt> Erstellungspfad> Erstellungspfad konfigurieren ...
  2. Wählen Sie die Registerkarte Bibliotheken. Es sollte Java 1.8 jre mit einem Fehler angezeigt werden
  3. Wählen Sie Java 1.8 jre aus und klicken Sie auf die Schaltfläche Entfernen
  4. Bibliothek hinzufügen ...> JRE-Systembibliothek> Weiter> Arbeitsbereichsstandard> Fertig stellen
  5. Klicken Sie auf OK, um das Eigenschaftenfenster zu schließen
  6. Gehen Sie zum Projektmenü> Reinigen ...> OK

Et voilà, das hat bei mir funktioniert.

e18r
quelle
7

Die Objektklasse ist die Basisklasse für alle Klassen in Java. Wenn Sie dies vermissen, bedeutet dies, dass Sie die JDK-Bibliotheken nicht in Ihrem Buildpath haben. Ich weiß nicht viel über Kepler, aber Sie müssen sicherstellen, dass es auf ein korrektes JDK zum Kompilieren und ein korrektes JRE zum Ausführen Ihrer Java-Apps verweist.

Ich habe jedoch den Pfad als C: \ Programme \ Java \ jdk1.6.0_41 in der Eclipse Kepler-Symbolleiste-> Windows-> Einstellungen-> Java-> Installierter JRE festgelegt

Sie versuchen, in Ihren Einstellungen auf jdk anstatt auf jre zu verweisen. Symbolleiste-> Windows-> Einstellungen-> Java-> Installiertes JRE sollte auf ein JRE und nicht auf JDK zeigen.

Juned Ahsan
quelle
Ich habe es auch damit versucht. Aber immer noch im gleichen Fehlerzustand.
Blue Diamond
4

Keine der anderen Antworten hat bei mir funktioniert. Aber das tat:

  1. Klicken Sie im Paket-Explorer mit der rechten Maustaste auf das Projekt.
  2. Quelle> Aufräumen ...
  3. Weiter> Fertig stellen

Als ich dies tat, fügte Eclipse einen Import in eine meiner Klassen hinzu. Ich glaube, das ist passiert, weil ich mein Projekt mit einem fehlenden Import gespeichert habe und wahrscheinlich nach der Arbeit nach Hause eilte.

Jack Pettinger
quelle
danke .. es funktioniert .. bitte erklären Sie mir, wie es funktioniert?
Singh Arjun
@SinghArjun Ich bin mir nicht sicher, aber ich denke, dies passiert, wenn das Projekt mit einem fehlenden Import gespeichert wird.
Jack Pettinger
4

Haben Sie nach der Verwendung einer früheren Version von JRE in Eclipse eine andere Version von JRE installiert?

wenn nicht als:

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren
  2. Gehen Sie zur Registerkarte "Bibliotheken"
  3. Bibliothek hinzufügen -> JRE-Systembibliothek -> Weiter -> Standard-JRE für den Arbeitsbereich (oder Sie können eine alternative JRE für Ihr System auswählen) -> Fertig stellen

wenn ja als.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren
  2. Gehen Sie zur Registerkarte "Bibliotheken"
  3. Vorherige Version entfernen
  4. Bibliothek hinzufügen -> JRE-Systembibliothek -> Weiter -> Standard-JRE für den Arbeitsbereich (oder Sie können in Ihrem System eine alternative JRE auswählen) -> Fertig stellen
Gaurav Varshney
quelle
4

Für mich hat das Reinigen, Schließen / erneutes Öffnen des Projekts und der IDE sowie das Entfernen / Hinzufügen der JRE im Erstellungspfad nicht funktioniert.

Die Lösung, die ich gefunden habe, bestand darin, das Projekt von Eclipse (nicht von der Festplatte) zu entfernen, die Eclipse-Dateien des Projekts von der Festplatte zu entfernen und erneut in Eclipse zu importieren. Das hat funktioniert.

Es ist noch schneller, wenn Sie Maven verwenden:

  1. Schließen Sie Eclipse (das Projekt muss nicht entfernt werden)
  2. Lauf mvn clean eclipse:clean eclipse:eclipse
  3. Öffnen Sie Eclipse. Ihr Projekt ist noch vorhanden und das Problem sollte behoben sein.
Nicolas Raoul
quelle
3

Ein weiteres Problem könnte sein, dass das Android Project Build Target nicht festgelegt ist.

  1. Klicken Sie mit der rechten Maustaste auf das Projekt
  2. Wählen Sie Eigenschaften
  3. Klicken Sie auf Android
  4. Aktivieren Sie das entsprechende Projekterstellungsziel
  5. Übernehmen | OK
satyrFrost
quelle
3

Klicken Sie mit der rechten Maustaste auf Projekt -> Im Navigator anzeigen. In der Navigatoransicht sehen Sie die .classpath-Datei. Löschen Sie diese Datei und erstellen Sie das Projekt. Das hat bei mir funktioniert. PS. Wenn Sie Ihr Eclipse-Projekt mit einer Versionskontrolle wie perfoce / svn integriert haben, ist es hilfreich, die Verknüpfung des Projekts aufzuheben, bevor Sie den .classpath löschen.

Sankalp
quelle
2

Ich hatte dieses Problem mit der Play-Java-Anwendung auf Eclipse, nachdem ich einen Controller hinzugefügt hatte. Ich habe JRE über den Erstellungspfad entfernt und neu installiert und dann mein Projekt entfernt und importiert, wodurch dieses Problem automatisch behoben wurde. Danke Kreisel.

user989383
quelle
Das ist das gleiche wie die Antwort von Ripon Al Wasim, richtig?
Nicolas Raoul
2

Dies scheint ein Eclipse-Fehler zu sein, obwohl der Neustart von Eclipse für mich großartig funktioniert hat. Ich hoffe, dies hilft auch jemand anderem.

Arturas M.
quelle
2

Was mein Problem gelöst hat war

1) Installieren Sie das JDK unter Verzeichnis ohne Leerzeichen:

C:/Java

Anstatt

C:/Program Files/Java

Dies ist ein bekanntes Problem in Windows. Ich reparierte JAVA_HOMEauch

2) Ich habe Java 7 und Java 8 auf meinem Laptop. Also habe ich das JVM mit definiert eclipse.ini. Dies ist kein obligatorischer Schritt, wenn Sie keinen -vmEintrag in Ihrem haben eclipse.ini. Ich habe aktualisiert:

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

Anstatt:

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

Viel Glück

KerenSi
quelle
1

Ich hatte in Eclipse-Fenstern das gleiche Problem, dass ich keine abhängigen .class-Dateien von der JNI hinzufügen konnte. Um dasselbe zu beheben, habe ich den gesamten Code auf die NetBeans-IDE portiert.

Es können nicht alle Klassendateien aus dem JNI / JNA-Ordner in Eclipse (JAVA, Windows 7) hinzugefügt werden.

Jyo der Hauch
quelle
Warum wird es abgelehnt? Ich habe alle möglichen Lösungen ausprobiert, konnte das Problem jedoch immer noch nicht beheben und habe dann Code auf NetBeans portiert. Ich antwortete darauf, denn wenn jemand im schlimmsten Fall aufstehen würde, könnte er Hilfe bekommen.
Jyo the Whiff
Sie haben vielleicht Recht, aber für mich hat JNI / JNA gut funktioniert (für Eclipse - 4.9.0), nachdem die vorhandene Bibliothek gelöscht und die Standard-JRE-Bibliothek eingerichtet, das Projekt geschlossen und das Projekt geöffnet wurde.
Ajay Kumar
1

Während wir mit den Versionen Tomcat 6 und JDK 1.8 arbeiten, funktionieren einige der Funktionen nicht und dieser Fehler ist einer. Sie müssen die JDK-Version in Eclipse in eine stabile Version (vorzugsweise JDK 1.6 oder JDK 1.8_65) ändern, um diesen Fehler zu beheben.

in Eclipse Schritt 1: Eigenschaften -> Java-Erstellungspfad -> JRE-Systembibliothek (entfernen) Schritt 2: Hinzufügen -> JRE-Systembibliothek -> Alternative JRE -> Installierte JRE -> Hinzufügen -> Standard-VM -> (in JRE Home, platziere jdk path) -> beende

Jetzt reinigen und das Projekt überprüfen

NSetty
quelle
1

Ich habe diesen Fehler erhalten, weil ich "Eclipse IDE für Enterprise Java-Entwickler" installiert, dieses deinstalliert und "Eclipse IDE für Java-Entwickler" installiert habe. Problem für mich gelöst.

RVR
quelle
0

Passiert mir, nachdem ich einige Updates in Eclipse installiert habe, aber vergessen habe, danach neu zu starten. Vielleicht hilft ein Neustart von Eclipse.

NotX
quelle
Ich habe versucht, das zu tun, aber ich darf noch keine Kommentare schreiben.
NotX
0

So trivial dies auch sein mag, überprüfen Sie Ihre Java-Installation. Für mich fehlte rt.jar .

Ich fand dies, nachdem ich einen halben Tag lang mit Eclipse-Einstellungen herumgespielt und nirgendwo hingekommen war. Verzweifelt beschloss ich schließlich, das Projekt über die Befehlszeile zu kompilieren. Ich hatte nicht erwartet, dass etwas falsch läuft, da ich dachte, es sei ein Eclipse-Problem, aber zu meinem Erstaunen sah ich Folgendes:

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

Ich weiß nicht, was mit meiner Java-Installation passiert ist und wohin rt.jar gegangen ist. Auf jeden Fall ist dies eine Erinnerung daran, die Fehler-Checkliste durchzugehen und alle Kästchen anzukreuzen, egal wie unglaublich sie sind. Das hätte mir viel Zeit gespart.

Nikola Kolev
quelle
0

Es funktioniert für mich, nachdem ich die Option 'User' --releae 'im Eclipse Java-Compiler deaktiviert habe

In Eclipse Schritt 1: Eigenschaften -> Java Complier -> uchecking 'User' --releae Option 'Option -> beenden

Java-Version 13.0.1 Eclipse-Version: Eclipse-IDE für Enterprise Java-Entwickler.

Poovaraj
quelle
0

Klicken Sie mit der rechten Maustaste auf Projekt und wählen Sie Maven -> Projekt aktualisieren. Das sollte das Problem lösen.

Morpheus
quelle
Das Ausführen von Eclipse -> Maven -> Update sollte einer der Schritte bei der Fehlerbehebung sein.
Vaibs
0

In meinem Fall war es ein großes modulares Projekt und das ' rote X ' wurde nur im übergeordneten Projekt angezeigt. Ich ging zum Elternprojekt

Eigenschaften -> Erstellter Pfad

a hat die JRE-Bibliothek dort entfernt, nur dass keine JRE-Bibliothek mehr im übergeordneten Projekt vorhanden ist.

Francisco Souza
quelle
0

Keine dieser Lösungen hat bei mir funktioniert. In meinem Fall bestand das Problem darin, dass ich einige Java-Code produzierende .javaDateien hatte und versehentlich eine Datei mit dem Namen erstellt hatte Class.java(Inhalt scheint keine Rolle zu spielen). Durch Entfernen der Datei wurde das Problem behoben.

HappyEvilSlosh
quelle