Eclipse-Fehler: "Der Import XXX kann nicht behoben werden"

135

Ich versuche mit Hibernate in Eclipse zu arbeiten. Ich erstelle ein neues einfaches Projekt und habe auch ein Kollegialprojekt über CVS heruntergeladen. Beide funktionieren nicht, während es bei der Eclipse meines Kollegen der Fall ist. Das Problem ist, dass Eclipse für jeden Import einer Hibernate-Klasse Folgendes sagt:

The import org.hibernate cannot be resolved

Aber alle Hibernate-Gläser befinden sich im Erstellungspfad, das heißt:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
bläulich
quelle
1
Wie haben Sie diese JAR in Ihren Build-Pfad eingefügt?
Jigar Joshi
3
nach Eigenschaften> Java-Erstellungspfad> Bibliotheken> Externe JARs hinzufügen
bläulich
1
Wenn es funktioniert hat und jetzt nicht, siehe @dogbanes Antwort unten ...
Shanimal
Überprüfen Sie, ob in Ihrem Importordner Speicherplatz vorhanden ist. Wenn ein Leerzeichen vorhanden ist, entfernen Sie das Leerzeichen und importieren Sie Projekte in Eclipse.
Schin Chan

Antworten:

283

Versuchen Sie, Ihr Projekt zu bereinigen, indem Sie zum folgenden Menüpunkt gehen:

Project > Clean...

Wenn dies nicht funktioniert, entfernen Sie die Gläser aus dem Erstellungspfad und fügen Sie sie erneut hinzu.

Dogbane
quelle
5
könnte ein JRE-Problem sein. Versuchen Sie, in den Projekteigenschaften eine "alternative JRE" auszuwählen.
Dogbane
10
Sauber hat auch bei mir funktioniert. Was genau passiert (plötzlich ist alles verrückt geworden) und wie hilft Clean?
Sabre Runner
1
Dies löste das Problem auch für mich; Es ist kein Hibernate-Projekt, sondern ein libGdx- Projekt, das meine Java-Importe und keine Jars aufruft. Gleiche Frage von @SabreRunner und auch: Gibt es irgendwo in den Umgebungstools einen Fehler?
Zac
3
Hat auch für mich gearbeitet. Es ist super frustrierend, wenn das Kontext-
Hilfemenü
1
Dieser Weg hilft in meinem Fall NICHT. Meine Eclipse-Version ist: Neon.3 Release (4.6.3)
Timothy.Li
27

Offensichtlich gibt es Fälle, in denen ein gültiges Problem vorliegt, aber Eclipse löst diesen Fehler manchmal ohne guten Grund aus.

Dies ist immer noch (2019-03) ein alter (2010) Eclipse-Fehler, der behoben werden kann, indem die Projekteinstellungen vernachlässigbar geändert werden.

Die Einstellung, die ich geändert habe, war: Projekt> Eigenschaften> Java-Erstellungspfad> Reihenfolge und Export> Bedeutungslose Auftragsänderung vornehmen> Übernehmen.

Wenn Sie die Reihenfolge zurück ändern, wird das Problem nicht behoben. Durch einfaches Berühren der Datei kann das Problem möglicherweise auch behoben werden (ich werde das nächste Mal die Berührung testen).

user1133275
quelle
1
Datei> Eigenschaften Sollte in Projekt> Eigenschaften geändert werden.
Timothy.Li
Dieser Weg hilft in meinem Fall NICHT. Meine Eclipse-Version ist: Neon.3 Release (4.6.3)
Timothy.Li
Für mich musste sich die JRE-Systembibliothek über den Maven-Abhängigkeiten auf der Registerkarte Reihenfolge und Export des Erstellungspfads befinden.
Anthony Hayward
2
Dieser Fehler ist jetzt mindestens 9 Jahre alt.
user1133275
Es ist immer noch da, November 2019. Meine Güte.
Tullochgorum
22

Reinigen Sie das Projekt. Überprüfen Sie noch einmal, ob sich die Gläser wirklich auf dem Erstellungspfad befinden (ohne Fehler). Stellen Sie außerdem sicher, dass in der Ansicht "Probleme" nichts angezeigt wird.

Bozho
quelle
Ich habe das schon mehr als einmal versucht: mit einzelnen Gläsern in einer Bibliothek ... Es scheint ein seltsamer Fehler zu sein!
bläulich
1
Haben Sie etwas in der Problemansicht?
Bozho
Nur die Probleme, die ich erzählt habe, und Warnungen vom Typ "Die serialisierbare Klasse Azienda deklariert kein statisches endgültiges serialVersionUID-Feld vom Typ long".
bläulich
18

Ich habe das Problem gefunden. Es war der Winterschlaf. Ich weiß nicht, warum es nicht gut aus der ZIP-Datei extrahiert wurde, möglicherweise beschädigt . Eine gute Möglichkeit, um zu überprüfen, ob Jars beschädigt sind oder nicht, ist das Navigieren durch ihre Baumstruktur im "Projektexplorer" in Eclipse: Wenn Sie einen JAR-Knoten nicht erweitern können, ist er wahrscheinlich beschädigt. Ich habe gesehen, dass beschädigte Pakete häufig auftreten, wenn Sie sie per Drag & Drop in den "Projektexplorer" ziehen. Vielleicht ist es besser, sie in der Betriebssystemumgebung zu verschieben und zu kopieren! Danke euch allen.

bläulich
quelle
17

Wenn es sich um ein Maven-Projekt handelt, klicken Sie auch auf Maven >> Projekt aktualisieren ... (F5)

Maven-Projekt aktualisieren

albertoiNET
quelle
Wenn Sie ein Maven-Projekt als "Java-Projekt" importieren, tritt dieses Problem auf. Konvertieren Sie das Projekt in ein Maven-Projekt und aktualisieren Sie es wie gesagt, dann ist das Problem behoben.
Kodmanyagha
8

Ich habe es gelöst, indem ich das Projekt entfernt (nicht auf der Festplatte löschen) und erneut importiert habe.

SoldierShen
quelle
8
  1. sauberes Projekt Projekt -> sauber ...
  2. Klicken Sie mit der rechten Maustaste auf Projekt -> BuildPath -> BuildPath konfigurieren -> Registerkarte Bibliotheken ->

Doppelklicken Sie auf JRE SYSTEM LIBRARY -> Wählen Sie dann alternative JRE aus

Balkrushna Patil
quelle
6

Ich hatte das Problem, dass der Klassenpfad irgendwie kaputt war.

Klicken Sie also mit der rechten Maustaste auf das Projekt im Paket-Explorer> Plug-in-Tools> Klassenpfad aktualisieren ... haben Sie es für mich getan

Wuppi
quelle
In Neon.3 Release (4.6.3) gibt es KEINE Plug-In-Tools im Kontextmenü, indem Sie mit der rechten Maustaste auf das Projekt im Package Explorer
klicken
6

Ich habe dieses Problem durch Aktualisieren des Projekts behoben: Klicken Sie mit der rechten Maustaste auf das Maven-Projekt, wählen Sie Maven -> Projekt aktualisieren -> aktivieren Sie das Kontrollkästchen Aktualisierungen von Snapshots / Releases erzwingen.

Kalahasthi Satyanarayana
quelle
5

Versuchen Sie, die JRE-Systembibliothek zum Erstellungspfad Ihres Projekts hinzuzufügen.

Gaurav Pant
quelle
3

Bei mir hat es geholfen , die Compliance-Stufe des Compilers zu ändern . Aus unbekannten Gründen wurde es auf 1.6 gesetzt und ich habe es auf 1.8 geändert.

Klicken Sie auf Projektebene mit der rechten Maustaste auf Projekt> Eigenschaften> Java-Compiler, während Sie in Eclipse auf Menüfenster> Einstellungen> Java> Compiler klicken.

Alex P.
quelle
3

Ich habe alle oben genannten Antworten ausprobiert, aber kein Glück. In meinem Fall gibt es einen generierten Ordner build / classes mit einigen zusätzlichen ".class" -Dateien. Am Ende ging ich zum Paket-Explorer, klickte mit der rechten Maustaste auf das Projekt und wählte die Option "Aktualisieren". Dadurch wurde der Ordner "build / classes" wieder verfügbar, um das Problem zu beheben.

egallardo
quelle
3

Dies hat mein Problem gelöst.

1) Projekt reinigen Projekt -> sauber ...

2) Klicken Sie mit der rechten Maustaste auf Projekt -> BuildPath -> BuildPath konfigurieren -> Registerkarte Bibliotheken -> Doppelklicken Sie auf JRE SYSTEM LIBRARY -> Wählen Sie dann alternative JRE aus

3) Klicken Sie auf Speichern

4) Gehen Sie erneut zu Ihrem Projekt im Projektexplorer und klicken Sie mit der rechten Maustaste auf Projekt -> BuildPath -> BuildPath konfigurieren -> Registerkarte Bibliotheken -> Doppelklicken Sie auf JRE SYSTEM LIBRARY -> Wählen Sie diesmal "Ausführungsumgebung".

5) Bewerben

Atul Waghmare
quelle
2

In meinem Fall war es ein zerbrochenes Glas im Maven-Repository. Löschen Sie JAR-Dateien im Repository und lassen Sie sie von Maven erneut herunterladen.

Als ich mvn clean installvon der Kommandozeile aus lief, lief es einwandfrei, aber Eclipse konnte den Code immer noch nicht kompilieren. Als ich maven installin Eclipse lief, sah ich, dass Maven sich über eine schlechte JAR-Datei beschwerte. Also habe ich es gelöscht und bin wieder gelaufen maven install. Das Problem war weg.

Evgeny Shmulev
quelle
2

Um nicht vorhandene JAR-Dateien in Ihr .m2-Verzeichnis herunterzuladen, sollten Sie den mvn clean installBefehl für Ihr Projekt pom.xml ausführen . Anschließend sollten Sie die Projektabhängigkeiten aktualisieren, indem Sie auf klicken Alt+F5. Das funktioniert bei mir!

ÖMER TAŞCI
quelle
2

Das Entfernen der "module-info.java" hat das Problem für mich behoben!

Diese Datei wurde automatisch generiert und erschien in meiner Hierarchie ...

val_t
quelle
1

Ich hatte das gleiche Problem, weil ich ein von mir erstelltes JAR hinzugefügt habe, in dem ich das Basisverzeichnis für die Verpackung anders als das Basisverzeichnis der Klassen festgelegt hatte. Infolgedessen musste die Klasse zB java.util.Listals importiert werdenutil.List der vorgeschlagene Import der erste.

Überprüfen Sie die importierten Jars unter den Bibliotheken, auf die verwiesen wird, um sicherzustellen, dass sie korrekt importiert wurden

kon psych
quelle
1

Ich habe die Gründe dafür nicht verstanden, aber dies hat das gleiche Problem gelöst, mit dem ich konfrontiert war. Möglicherweise benötigen Sie diese Schritte, bevor Sie die in den obigen Lösungen genannten Schritte ausführen (Alle Projekte bereinigen und automatisch erstellen).

Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Projektfacetten -> Wählen Sie Java -> Übernehmen

avp
quelle
1

Wenn Sie auf dieses Problem stoßen, gehen Sie einfach zu Projekt> Bereinigen und wählen Sie Alle Projekte bereinigen. Es sollte behoben werden, andernfalls versuchen Sie, diese Gläser zu löschen und erneut hinzuzufügen. Als letztes sollten Sie versuchen, Eclipse neu zu starten.

Srinivas Thammanaboina
quelle
1

pom.xml

Wenn es sich um ein Maven-Projekt handelt, gehen Sie zu pom.xml und entfernen Sie alle Abhängigkeitsgläser. Speichern Sie es. Das Projekt wird automatisch erstellt.

Fügen Sie dann erneut Abhängigkeitsgläser hinzu (Sie können Ctrl+ tun Z). Speichern Sie es. Das Projekt wird automatisch erstellt und dieser Fehler wird nicht angezeigt.

sravan
quelle
1

Entfernen Sie die Abhängigkeit in Ihrer POM.XML, laden Sie das JAR herunter und fügen Sie es in buildpath hinzu.

Manchmal -> Maven wird keine neuen Änderungen widerspiegeln und dies könnte diese Art von Problem verursachen

Rajagopal K.
quelle
0

Bitte versuchen Sie zu überprüfen, ob alle Bibliotheken vorhanden sind. Ich hatte das gleiche Problem. Aber ich habe es gelöst, indem ich den lib-Ordner verschoben und alle Gläser erneut in den Erstellungspfad eingefügt habe.

Ravikumar
quelle
0

Ich habe das gleiche Problem. Ich habe das JAR heruntergeladen und dem Erstellungspfad hinzugefügt, aber ich habe nicht bemerkt, dass die Erweiterung .jar.zip war. Ich habe es erneut in .jar konvertiert und dem Erstellungspfad hinzugefügt.

Es hat mein Problem gelöst. Es ist ein sehr dummer Fehler, aber ich habe ihn hier geschrieben, falls es jemandem helfen könnte.

Ali786
quelle
0

Wenn Sie mit Maven arbeiten und dieses Problem haben, überprüfen Sie den Repository-Server (z. B. den Nexus-Server), ob das Artefakt vorhanden ist. Manchmal können sie den Namen des Artefakts ändern und Sie versuchen, das Artefakt mit seinem alten Namen zu erhalten.

drJava
quelle
0

Wird durch Verknüpfen der Quelle behoben. Klicken Sie im Explorer mit der rechten Maustaste auf das Projekt, wählen Sie Eigenschaften aus, wählen Sie Java Build Path aus, wählen Sie Source auf Registerkarten aus und klicken Sie auf die Schaltfläche "LinkSource". Geben Sie den Ordner an, der dem Projekt hinzugefügt werden soll.

Leben lieben Lachen
quelle
0

Ich konnte auch nicht importieren. Ich habe einige Stunden gebraucht, um herauszufinden, dass ich versucht habe, eine 1.6 / gebundene Bibliothek / ein Glas zu verwenden, während ich versucht habe, für 1.8 zu kompilieren. Als ich mein Projekt auch auf 1.6 umstellte, war das Importproblem behoben. Alle Fehlermeldungen führten in falsche Richtungen. Nur in der Quelle habe ich einige Einschränkungen gefunden, die sich auf die Version 1.6 beziehen. Und: Zum Beispiel können .settings und .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 einen Hinweis auf solche Probleme geben.

sqller
quelle
0

Ich hatte das gleiche Problem und löste es, indem ich ein Glas entfernte, das zweimal in zwei verschiedenen Abhängigkeiten von meiner pom.xml hinzugefügt wurde. Durch Entfernen einer der Abhängigkeiten wurde das Problem behoben.

Reema
quelle
0

Für mich schien es, als würde ich die falsche Ebene des Bibliotheksordners hinzufügen. Ich habe den Jericho HTML Parser heruntergeladen und in entpackt eclipse-workspace/libraries/jericho-html-3.4/

Wenn Sie dies dann als externen Bibliotheksordner hinzufügen, bestand der Trick darin, zu diesem Ordner zu navigieren, den Ordner "Klassen" zu markieren und Öffnen zu drücken. Ich hatte zuvor versucht, sowohl die übergeordneten als auch die verschiedenen Ebenen von Unterordnern hinzuzufügen, und es funktionierte nicht.

Das ist so ziemlich erklärt hier , sagt sie

Sie können auch einen Klassenordner hinzufügen , ein Verzeichnis, das Java-Klassendateien enthält, die sich nicht in einer JAR befinden.

Ich habe hier zwei Lektionen gelernt, entschuldige mich, wenn diese nicht zum Thema gehören:

  1. Lesen Sie die Anweisungen sorgfältig durch - wie Wort für Wort!

  2. Gib nicht auf - dies ist das erste Mal, dass ich eine Bibliothek hinzufüge. Ich habe ungefähr zwei Stunden gebraucht, um sie hinzuzufügen.

Pateksan
quelle
0

Lösung für Eclipse IDE

In meinem Fall habe ich das Problem behoben, indem ich eine dieser beiden Dateien korrigiert habe, die möglicherweise beschädigt sind : .classpath oder .project .

Um eine der beschädigten Dateien zu reparieren, können Sie aus einem anderen Projekt kopieren, das sowohl die .project- als auch die .classpath- Datei enthält und fehlerfrei ist. Achten Sie jedoch darauf, keine zusätzlichen Einstellungen hinzuzufügen, die nicht verwendet werden.

Tavo
quelle
0

[ Code Igniter- Rahmen] [ Bibliothek importieren ]

Klicken Sie mit der rechten Maustaste auf das Projekt in einer Projekt-Explorer-Ansicht und wählen Sie Aktualisieren . Alle Fehlermarkierungen sind in meinem Fall überraschend verschwunden.


Ich bin nicht gut in Eclipse. Ich habe angefangen, Android Studio zu verwenden, um Android zu entwickeln. Es ist jedoch ärgerlich zu sehen, dass ständig rote Fehlermarkierungen schweben, während das gesamte Projekt noch einwandfrei funktioniert. Es ist mir passiert, als ich mit Composer eine Bibliothek wie folgt importiere:

require __DIR__ . '/../../vendor/autoload.php';

use \Firebase\JWT\JWT;
Nguyen Tan Dat
quelle