Błąd Eclipse: „Nie można rozwiązać importu XXX”


135

Próbuję pracować z Hibernate w Eclipse. Tworzę nowy, prosty projekt i pobrałem też projekt kolegialny przez CVS. Obie nie działają, podczas gdy na moim kolegi Eclipse tak. Problem polega na tym, że dla każdego importu klasy Hibernate Eclipse mówi:

The import org.hibernate cannot be resolved

Ale wszystkie słoiki Hibernate znajdują się na ścieżce budowania, to znaczy:

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

1
w jaki sposób dodałeś ten słoik do ścieżki kompilacji?
Jigar Joshi

3
według Właściwości> Ścieżka budowania Java> Biblioteki> Dodaj zewnętrzne pliki JAR
niebieskawe


1
Jeśli to zadziałało, a teraz nie, zobacz odpowiedź @dogbane poniżej ...
Shanimal

sprawdź, czy w folderze importu jest wolne miejsce. jeśli jest spacja, usuń ją i zaimportuj projekty do Eclipse.
schin chan

Odpowiedzi:


283

Spróbuj wyczyścić projekt, przechodząc do następującej pozycji menu:

Project > Clean...

Jeśli to nie zadziała, spróbuj usunąć słoiki ze ścieżki kompilacji i dodać je ponownie.


5
może być problem ze środowiskiem JRE. Spróbuj wybrać „alternatywne środowisko JRE” we właściwościach projektu.
dogbane

10
Czystość też działała na mnie. Co dokładnie się dzieje (wszystko nagle zwariowało) i jak Clean pomaga?
Sabre Runner

1
To rozwiązało problem również dla mnie; nie jest to projekt hibernacji, ale libGdx , wywołujący mój import java, a nie jars. To samo zastanawiasz się nad @SabreRunner, a także: gdzieś w narzędziach środowiska jest błąd?
Zac,

3
Dla mnie też zadziałał. To bardzo frustrujące, gdy menu pomocy kontekstowej znajduje twoją klasę i ręcznie wpisuje ten sam import powyżej tych oznaczonych „nie można rozwiązać” i żadnych błędów ...
Shanimal

1
Ten sposób NIE pomaga w moim przypadku. Moja wersja Eclipse to: Neon.3 Release (4.6.3)
Timothy.Li

27

Oczywiście są przypadki, w których występuje ważny problem, jednak Eclipse czasami zgłasza ten błąd bez dobrego powodu.

Ten wciąż (2019-03) jest starym błędem Eclipse (2010), który można rozwiązać, wprowadzając nieznaczną zmianę w ustawieniach projektu.

Ustawienie, które wybrałem do zmiany, to: Projekt> Właściwości> Ścieżka budowania Java> Zamów i eksportuj> wprowadź bezsensowną zmianę kolejności> Zastosuj.

Zmiana zamówienia z powrotem nie oznacza powrotu do problemu. Samo dotknięcie pliku może również rozwiązać problem (następnym razem przetestuję dotyk).


1
Plik> Właściwości Należy zmienić na Projekt> Właściwości.
Timothy.Li

Ten sposób NIE pomaga w moim przypadku. Moja wersja Eclipse to: Neon.3 Release (4.6.3)
Timothy.Li

Dla mnie biblioteka systemowa JRE musiała znajdować się powyżej Maven Dependencies na karcie Build Path i eksport.
Anthony Hayward

2
Ten błąd ma teraz co najmniej 9 lat.
user1133275

Nadal tam jest, listopad 2019 r. Sheesh.
Tullochgorum

22

Wyczyść projekt. I dwukrotnie sprawdź, czy słoiki są naprawdę na ścieżce kompilacji (bez błędów). Upewnij się również, że w widoku „Problemy” nie ma nic.


Próbowałem już tego więcej niż raz: z pojedynczymi słoikami, w bibliotece… Wydaje się, że to dziwny błąd!
niebieskawe

1
czy masz coś w widoku Problemy?
Bozho

Tylko problemy, które opisałem i ostrzeżenia typu „Klasa możliwa do serializacji Azienda nie deklaruje statycznego końcowego pola serialVersionUID typu long”.
niebieskawe

18

Znalazłem problem. Był to plik hibernate3.jar. Nie wiem, dlaczego nie został dobrze wyodrębniony z .zipa, może uszkodzony . Dobrym sposobem sprawdzenia, czy słoiki są uszkodzone, czy nie, jest poruszanie się po ich strukturze drzewa w "Eksploratorze projektów" w Eclipse: jeśli nie możesz rozwinąć węzła jar, prawdopodobnie jest uszkodzony. Widziałem, że posiadanie uszkodzonych pakietów jest częste podczas przeciągania i upuszczania ich do „Eksploratora projektów”. Może lepiej je przenieść i skopiować w środowisku systemu operacyjnego! Dziękuję wam wszystkim.


17

Jeśli jest to projekt Maven, kliknij także Maven >> Aktualizuj projekt ... (F5)

Zaktualizuj projekt Maven


Jeśli importujesz projekt maven jako „projekt Java”, wtedy ten problem występuje. Przekonwertuj projekt na projekt maven i zaktualizuj, jak powiedziałeś, problem zniknął.
kodmanyagha


8
  1. czysty projekt Projekt -> czysty ...
  2. Kliknij prawym przyciskiem myszy projekt -> BuildPath -> Configure BuildPath -> zakładka Libraries ->

Kliknij dwukrotnie JRE SYSTEM LIBRARY -> Następnie wybierz alternatywne JRE


6

Miałem problem, że ścieżka klas została jakoś zepsuta.

Więc kliknij prawym przyciskiem myszy projekt w Eksploratorze pakietów> Narzędzia wtyczek> Aktualizuj ścieżkę klasy ... zrobiłem to za mnie


W wydaniu Neon.3 (4.6.3) w menu kontekstowym nie ma żadnych narzędzi
wtyczek

6

Rozwiązałem ten problem, aktualizując projekt: kliknij prawym przyciskiem myszy projekt Maven, wybierz Maven -> Aktualizuj projekt -> zaznacz pole wyboru Wymuś aktualizacje migawek / wydań.



3

Ze mną pomogło to zmienić poziom zgodności kompilatora . Z niewiadomych przyczyn był ustawiony na 1,6, a ja zmieniłem na 1,8.

Na poziomie projektu kliknij prawym przyciskiem myszy projekt> Właściwości> Kompilator Java, podczas gdy w Eclipse kliknij menu Okno> Preferencje> Java> Kompilator.


3

Wypróbowałem wszystkie powyższe odpowiedzi, ale bez powodzenia. W moim przypadku istnieje wygenerowany folder build / classes z dodatkowymi plikami „.class”. Skończyło się na tym, że przeszedłem do eksploratora pakietów, kliknąłem projekt prawym przyciskiem myszy i wybrałem opcję „Odśwież”, co sprawiło, że folder build / classes był ponownie dostępny, rozwiązując problem.


3

To rozwiązało mój problem.

1) czysty projekt Projekt -> czysty ...

2) Kliknij prawym przyciskiem myszy projekt -> BuildPath -> Configure BuildPath -> zakładka Libraries -> dwukrotnie kliknij JRE SYSTEM LIBRARY -> Następnie wybierz alternatywne JRE

3) Kliknij Zapisz

4) Ponownie przejdź do swojego projektu w eksploratorze projektów i kliknij prawym przyciskiem myszy na projekt -> BuildPath -> Configure BuildPath -> zakładka Libraries -> kliknij dwukrotnie na JRE SYSTEM LIBRARY -> Tym razem wybierz „Execution Environment”

5) Zastosuj


2

W moim przypadku był to zepsuty słoik w repozytorium Mavena. Usuń pliki jar w repozytorium i pozwól Mavenowi pobrać je ponownie.

Kiedy uruchomiłem mvn clean installz wiersza poleceń, działało dobrze, ale Eclipse nadal nie mógł skompilować kodu. Kiedy uruchomiłem maven installEclipse, zobaczyłem, że Maven narzekał na zły plik jar. Więc usunąłem go i uruchomiłem maven installponownie. Problem zniknął.


2

Aby pobrać nieistniejący plik jar do katalogu .m2, należy uruchomić mvn clean installpolecenie dla swojego projektu pom.xml. Następnie należy zaktualizować zależności projektu, klikając Alt+F5. To działa dla mnie!


2

Usunięcie pliku „module-info.java” rozwiązało problem!

Ten plik został wygenerowany automatycznie i pojawił się w mojej hierarchii ...


1

Miałem ten sam problem, ponieważ dodałem utworzony przeze mnie jar, w którym ustawiłem katalog podstawowy opakowania inny niż katalog podstawowy klas. W rezultacie np. Klasa java.util.Listmusiała zostać zaimportowana, tak jakby util.Listsugerowany import był pierwszym.

Sprawdź zaimportowane pliki JAR w bibliotekach, do których istnieją odniesienia, aby zobaczyć, czy zostały poprawnie zaimportowane


1

Nie rozumiałem powodu tego, ale to rozwiązało ten sam problem, z którym miałem do czynienia. Możesz wymagać tych kroków przed wykonaniem kroków wymienionych w powyższych rozwiązaniach (Wyczyść wszystkie projekty i Kompiluj automatycznie).

kliknij prawym przyciskiem projekt -> Właściwości -> Aspekty projektu -> wybierz Java -> Zastosuj


1

Ilekroć napotkasz ten problem, po prostu przejdź do Projekt> Wyczyść, a następnie wybierz Wyczyść wszystkie projekty. Powinien zostać rozwiązany, w przeciwnym razie spróbuj usunąć te słoiki i dodać je ponownie. Ostatnią rzeczą byłoby ponowne uruchomienie Eclipse.


1

pom.xml

Jeśli jest to projekt Maven, przejdź do pom.xml i usuń wszystkie pliki jars zależności. Zapisz to. Projekt zostanie automatycznie zbudowany.

Następnie ponownie dodaj pliki słoików zależności (możesz zrobić Ctrl+ Z). Zapisz to. Projekt zostanie automatycznie zbudowany i nie zobaczysz tego błędu.


1

Usuń zależność z POM.XML i pobierz jar i dodaj go w buildpath.

kiedyś -> maven nie będzie odzwierciedlać nowych zmian, co może powodować tego rodzaju problemy


0

Spróbuj i sprawdź, czy wszystkie biblioteki są na swoich miejscach. Miałem ten sam problem. Ale rozwiązałem to, przenosząc folder lib i ponownie dodając wszystkie pliki jar w ścieżce kompilacji.


0

Mam ten sam problem. Ściągnąłem jar i dodałem go do ścieżki kompilacji, ale nie zauważyłem, że rozszerzenie to .jar.zip. Ponownie przekonwertowałem go na .jar i dodałem do ścieżki kompilacji.

To rozwiązało mój problem. To bardzo głupi błąd, ale napisałem go tutaj na wypadek, gdyby mógł komuś pomóc.


0

Jeśli pracujesz z Mavenem i masz ten problem, sprawdź serwer repozytorium (na przykład serwer Nexus), czy artefakt tam jest. Czasami mogą zmienić nazwę artefaktu i próbujesz zdobyć artefakt z jego starą nazwą.


0

Rozwiązane przez połączenie źródła. W eksploratorze kliknij projekt prawym przyciskiem myszy, wybierz właściwości, wybierz ścieżkę budowania Java, wybierz źródło z zakładek, naciśnij przycisk „LinkSource”. I określanie folderu do dodania do projektu.


0

Nie mogłem również importować. Zajęło mi kilka godzin, zanim zorientowałem się, że próbowałem użyć biblioteki / słoika związanego z 1.6, podczas gdy próbowałem skompilować dla 1.8. Kiedy zmieniłem projekt na 1.6, problem z importem zniknął. Wszystkie komunikaty o błędach prowadziły w złych kierunkach. Właśnie w źródle znalazłem pewne ograniczenia kierujące do wersji 1.6. Oraz: Na przykład .settings i .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 mogą dać wskazówkę dotyczącą takich problemów.


0

Napotkałem ten sam problem i rozwiązałem go, usuwając słoik, który został dodany dwukrotnie w dwóch różnych zależnościach od mojego pom.xml. Usunięcie jednej z zależności rozwiązało problem.


0

Wydawało mi się, że dodałem niewłaściwy poziom folderu biblioteki. Pobrałem Jericho HTML Parser , rozpiął go do eclipse-workspace/libraries/jericho-html-3.4/

Następnie podczas dodawania tego jako zewnętrznego folderu biblioteki, sztuczka polegała na tym, aby przejść do tego folderu, podświetlić folder „klasy” i nacisnąć Otwórz. Wcześniej próbowałem dodać zarówno nadrzędny, jak i różne poziomy podfolderów, ale to nie zadziałało.

To jest dość dużo wyjaśnione tutaj , to mówi

Możesz także dodać folder klasy , katalog zawierający pliki klas Java, których nie ma w pliku JAR.

Wyciągnąłem z tego dwie lekcje, przepraszam, jeśli są nie na temat:

  1. Przeczytaj uważnie instrukcję - tak jak słowo po słowie!

  2. Nie poddawaj się - to jest pierwszy raz, kiedy dodam bibliotekę, dodanie jej zajęło mi około dwóch godzin.


0

Rozwiązanie dla Eclipse IDE

W moim przypadku naprawiłem to, poprawiając jeden z tych dwóch plików, który może być uszkodzony: .classpath lub .project .

Aby naprawić uszkodzony plik, możesz skopiować go z innego projektu, który zawiera zarówno plik .project , jak i .classpath , i jest wolny od błędów. Ale pamiętaj, aby nie dodawać dodatkowych ustawień, które nie będą używane.


0

[ Konstrukcja ramy Code Igniter ] [ Import biblioteki ]

Spróbuj kliknąć projekt prawym przyciskiem myszy w widoku Eksploratora projektów, wybierz opcję Odśwież . Wszystkie znaczniki błędów nieoczekiwanie zniknęły w moim przypadku.


Nie jestem dobry w Eclipse. Zacząłem używać Android Studio do tworzenia Androida. Ale denerwujące jest to, że czerwone znaczniki błędów unoszą się przez cały czas, podczas gdy cały projekt nadal działa dobrze. Zdarzyło mi się to, gdy używam kompozytora do importowania biblioteki w następujący sposób:

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

use \Firebase\JWT\JWT;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.