Projekt Java w Eclipse: Nie można rozwiązać typu java.lang.Object. Jest pośrednio przywoływany z wymaganych plików .class

209

Po zaimportowaniu projektu do środowiska Eclipse pojawia się następujący błąd:

Nie można rozwiązać typu java.lang.Object. Jest pośrednio przywoływany z wymaganych plików .class

Jednak ustawiłem ścieżkę jako C: \ Program Files \ Java \ jdk1.6.0_41 w Eclipse Kepler, poprzez okno »Preferencje» Java »Zainstalowane środowiska JRE .

Niebieski diament
źródło
zrobiłem „projekt kopiowania” i błąd zniknął
Srinath Ganesh
Zachowanie to nadal występuje w Luna Service Release 2 (4.4.2). Rozwiązanie tutaj nadal może rozwiązać problem.
fobiczny

Odpowiedzi:

243

To irytujący błąd Eclipse, który wydaje się gryźć od czasu do czasu. Zobacz http://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.html, aby znaleźć możliwe rozwiązanie, w przeciwnym razie spróbuj wykonać następujące czynności;

  • Zamknij projekt i otwórz go ponownie.

  • Wyczyść projekt (odbuduje ścieżkę kompilacji, a tym samym ponownie skonfiguruje biblioteki JDK)

    LUB

  • Usuń i ponownie zaimportuj projekt, a jeśli to konieczne, wykonaj ponownie powyższe kroki.

Lepszym rozwiązaniem jest wypróbowanie NetBeans zamiast Eclipse :-)

Gyro Gearless
źródło
4
To samo tutaj. Dziwaczny błąd Eclipse. Jak mówi link, usunięcie biblioteki JRE ze ścieżki klas projektu i dodanie jej ponownie rozwiązuje problem.
Felipe Leão
Och, dla świata, który nie miał kontraktów z IBM.
Zibbobz,
1
Miałem ten błąd w projekcie Androida, dla mnie kliknięcie Narzędzia Android -> Napraw właściwości projektu naprawiło go.
Lorenz,
@Zibbobz, dlaczego potrzebujemy umowy z IBM. Nadal nie jestem w stanie rozwiązać tego problemu z IBM Java.
Anand
Zastanawiam się, czy ma to związek ze zmianą zmiennej środowiskowej JAVA_HOME? Zmieniłem zmienną JAVA_HOME i wyskoczyło. Właśnie usunąłem / przeczytałem bibliotekę JRE.
user2124871,
221

Poniższe kroki mogą pomóc:

  1. Kliknij prawym przyciskiem myszy projekt »Właściwości» Ścieżka kompilacji Java
  2. Wybierz zakładkę Biblioteki
  3. Znajdź bibliotekę systemową JRE i usuń ją
  4. Kliknij przycisk Dodaj bibliotekę ... po prawej stronie »Dodaj bibliotekę systemową JRE (domyślna JRE obszaru roboczego)
Ripon Al Wasim
źródło
4
W moim przypadku tak się stało, ponieważ przypadkowo usunąłem środowisko JRE podczas importowania projektu [moja wina]. To dało mi wskazówkę, jak rozwiązać problem.
GayashanNA
w moim przypadku w ogóle nie istniał, więc go dodałem.
Muhammed Refaat
1
Chociaż to zadziałało w moim przypadku, rozwiązałem 8 błędów, ale dałem mi kolejne 33!
Harsh Phoujdar
10

Oto jak to rozwiązałem: W Java-ADT: Windows - Preferencje - Java - Zainstalowane środowiska JRE Wystarczy dodać kolejne środowisko JRE, wskazując folder „jre” pod folderem JDK. (jre jest zawarte w jdk). Upewnij się, że wybrałeś nowy Jre.

Andy Zhang
źródło
10

Stało się tak, gdy zaimportowałem projekt Java 1.8 z Eclipse Luna do Eclipse Kepler.

  1. Kliknij prawym przyciskiem myszy projekt> Ścieżka kompilacji> skonfiguruj ścieżkę kompilacji ...
  2. Wybierz kartę Biblioteki, powinieneś zobaczyć Jre Java 1.8 z błędem
  3. Wybierz java 1.8 jre i kliknij przycisk Usuń
  4. Dodaj bibliotekę ...> Biblioteka systemowa JRE> Dalej> domyślny obszar roboczy> Zakończ
  5. Kliknij przycisk OK, aby zamknąć okno właściwości
  6. Przejdź do menu projektu> Wyczyść ...> OK

Et voila, to działało dla mnie.

e18r
źródło
7

Klasa obiektowa jest klasą bazową dla wszystkich klas w Javie, jeśli jej brakuje, oznacza to, że nie masz bibliotek jdk w ścieżce kompilacji. Nie wiem dużo o Keplerze, ale musisz upewnić się, że wskazuje on prawidłowy plik jdk do kompilacji i poprawny plik jre do uruchamiania aplikacji Java.

Jednak ustawiłem ścieżkę jako C: \ Program Files \ Java \ jdk1.6.0_41 z paska narzędzi eclipse Kepler-> windows-> preferencje-> java-> zainstalowany jre

Próbujesz wskazać jdk zamiast jre w swoich preferencjach. pasek narzędzi-> windows-> preferencje-> java-> zainstalowany jre powinien wskazywać na jre, a nie jdk.

Juned Ahsan
źródło
Próbowałem też z tym. Ale wciąż w tym samym stanie błędu.
Blue Diamond,
4

Żadna z pozostałych odpowiedzi nie działała dla mnie. Ale zrobienie tego spowodowało:

  1. Kliknij prawym przyciskiem myszy projekt w eksploratorze pakietów.
  2. Źródło> Oczyść ...
  3. Dalej> Zakończ

Kiedy to zrobiłem, Eclipse dodał import do jednej z moich klas. Myślę, że tak się stało, ponieważ uratowałem mój projekt z brakującym importem, prawdopodobnie śpiesząc się, aby wrócić do domu po pracy.

Jack Pettinger
źródło
dzięki .. działa. proszę wyjaśnić mi, jak to działa?
Singh Arjun
@SinghArjun Nie jestem pewien, ale myślę, że dzieje się tak, gdy projekt zostanie zapisany z brakującym importem.
Jack Pettinger
4

Czy po zainstalowaniu innej wersji środowiska JRE w środowisku Eclipse zainstalowano inną wersję JRE?

jeśli nie niż:

  1. Kliknij prawym przyciskiem myszy swój projekt -> Ścieżka kompilacji -> Konfiguruj ścieżkę kompilacji
  2. Przejdź do zakładki „Biblioteki”
  3. Dodaj bibliotekę -> Biblioteka systemu JRE -> Dalej -> Domyślne środowisko JRE obszaru roboczego (lub możesz wybrać Alternatywne środowisko JRE ze swojego systemu) -> Zakończ

jeśli tak niż.

  1. Kliknij prawym przyciskiem myszy swój projekt -> Ścieżka kompilacji -> Konfiguruj ścieżkę kompilacji
  2. Przejdź do zakładki „Biblioteki”
  3. Usunąć poprzednią wersję
  4. Dodaj bibliotekę -> Biblioteka systemu JRE -> Dalej -> Domyślne środowisko JRE obszaru roboczego (lub możesz wybrać alternatywne środowisko JRE z systemu) -> Zakończ
Gaurav Varshney
źródło
4

Nie działało dla mnie żadne czyszczenie, zamykanie / ponowne otwieranie projektu i IDE, usuwanie / dodawanie środowiska JRE w ścieżce kompilacji.

Rozwiązaniem, które znalazłem, było usunięcie projektu z Eclipse (nie z dysku), usunięcie plików projektu Eclipse z dysku i zaimportowanie do Eclipse ponownie. To się udało.

Jest jeszcze szybszy, jeśli używasz Maven:

  1. Zamknij Eclipse (nie trzeba usuwać projektu)
  2. Biegać mvn clean eclipse:clean eclipse:eclipse
  3. Otwórz Eclipse. Twój projekt jest nadal obecny i problem powinien zniknąć.
Nicolas Raoul
źródło
3

Innym problemem może być to, że cel kompilacji projektu Android nie jest ustawiony.

  1. Kliknij projekt prawym przyciskiem myszy
  2. Wybierz Właściwości
  3. Kliknij Android
  4. Zaznacz odpowiedni cel kompilacji projektu
  5. Zastosuj | dobrze
satyrFrost
źródło
3

Kliknij prawym przyciskiem myszy projekt -> Pokaż w nawigatorze W widoku nawigatora możesz zobaczyć plik .classpath, usuń ten plik i skompiluj projekt. To zadziałało dla mnie. PS. Jeśli zintegrowałeś swój projekt zaćmienia z jakąś kontrolą wersji, taką jak perfoce / svn, pomocne będzie odłączenie projektu przed usunięciem ścieżki .classpath.

Sankalp
źródło
2

Napotkałem ten problem z aplikacją Play-java w środowisku Eclipse po dodaniu kontrolera, usunąłem i ponownie zainstalowałem środowisko JRE poprzez ścieżkę kompilacji, a następnie usunąłem i zaimportowałem mój projekt, który rozwiązał ten problem automatycznie. Dzięki żyroskopu.

użytkownik989383
źródło
To jest to samo, co odpowiedź Ripona Al Wasima, prawda?
Nicolas Raoul
2

Wygląda na to, że jest to błąd Eclipse, chociaż ponowne uruchomienie Eclipse działało dla mnie świetnie, mam nadzieję, że pomoże to również komuś innemu.

Arturas M.
źródło
2

Tym, co rozwiązało mój problem, było

1) Zainstaluj jdk w katalogu bez spacji:

C:/Java

Zamiast

C:/Program Files/Java

Jest to znany problem w systemie Windows. Naprawiłem JAVA_HOMErównież

2) I java 7 i java 8 na moim laptopie. Więc zdefiniowałem jvm za pomocą eclipse.ini. Nie jest to obowiązkowy krok, jeśli nie masz -vmwpisu eclipse.ini. Ja zaktualizowałem:

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

Zamiast:

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

Powodzenia

KerenSi
źródło
1

Miałem taki sam problem w oknach zaćmienia, że ​​nie mogłem dodać zależnych plików .class z JNI. Aby rozwiązać to samo, przeniosłem cały kod do NetBeans IDE.

Nie można dodać wszystkich plików klas z folderu JNI / JNA w Eclipse (JAVA, Windows 7)

Jyo the Whiff
źródło
Dlaczego jest to przegłosowane? Zobacz Próbowałem wszystkich możliwych rozwiązań, nadal nie mogłem rozwiązać problemu, a następnie przeniosłem kod do NetBeans. Odpowiedziałem na to, ponieważ jeśli ktoś utknie, w najgorszym przypadku (on) może uzyskać pomoc.
Jyo the Whiff,
Być może masz rację, ale dla mnie JNI / JNA działało dobrze (dla eclipse - 4.9.0) po usunięciu istniejącej biblioteki i ustawieniu domyślnej biblioteki jre, zamknięciu projektu, otwarciu projektu.
Ajay Kumar
1

Podczas gdy pracujemy z wersjami tomcat 6 i jdk 1.8, niektóre funkcje nie będą działać, a otrzymywany błąd to jeden. musisz zmienić wersję jdk na stabilną (najlepiej jdk 1.6 lub jdk 1.8_65) w Eclipse, aby rozwiązać ten błąd.

w zaćmieniu krok 1: właściwości -> ścieżka kompilacji java -> biblioteka systemowa jre (usuń) krok 2: dodaj -> biblioteka systemowa jre -> alternatywny jre -> zainstalowany jre -> dodaj -> Standardowa maszyna wirtualna -> (w jre home, umieść ścieżkę jdk) -> zakończ

teraz wyczyść i sprawdź projekt

NSetty
źródło
1

Wystąpił ten błąd, ponieważ zainstalowałem „Eclipse IDE dla programistów Java dla przedsiębiorstw”, odinstalowałem to i zainstalowałem „Eclipse IDE dla programistów Java”. Problem rozwiązany dla mnie.

RVR
źródło
0

Zdarza mi się po zainstalowaniu niektórych aktualizacji w środowisku Eclipse, ale później zapomniałem uruchomić się ponownie. Może więc pomóc ponowne uruchomienie zaćmienia.

NotX
źródło
Próbowałem to zrobić, ale nie mogę jeszcze pisać komentarzy.
NotX
0

Choć może to być trywialne, sprawdź instalację Java. Dla mnie brakowało pliku rt.jar .

Znalazłem to po majstrowaniu przez pół dnia przy ustawieniach Eclipse i nie udawaniu się. Zdesperowany, w końcu postanowiłem spróbować skompilować projekt z wiersza poleceń. Nie spodziewałem się, że zobaczę coś złego, ponieważ myślałem, że to problem z Eclipse, ale ku mojemu zdziwieniu zobaczyłem to:

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

Nie wiem, co się stało z moją instalacją Java i dokąd poszedł plik rt.jar. W każdym razie jest to przypomnienie, aby przejrzeć listę kontrolną błędów i zaznaczyć wszystkie pola bez względu na to, jak niewiarygodne są. Zaoszczędziłoby mi to dużo czasu.

Nikola Kolev
źródło
0

Działa dla mnie po odznaczeniu opcji „Użytkownik” - opcja „releae” w kompilatorze Java Eclipse

W kroku 1 zaćmienia: właściwości -> java Complier -> zaznaczenie opcji „Użytkownik” - opcja opcji - - zakończenie

Wersja Java 13.0.1 Wersja Eclipse: Eclipse IDE dla programistów Java firmy.

poovaraj
źródło
0

Kliknij projekt prawym przyciskiem myszy, wybierz Maven -> Zaktualizuj projekt. To powinno rozwiązać problem.

Morfeusz
źródło
wykonanie eclipse -> maven -> aktualizacja powinno być jednym z kroków podczas rozwiązywania problemów.
Vaibs
0

W moim przypadku był to duży projekt modułowy, a „ czerwony X ” pokazywał się tylko w projekcie nadrzędnym. Poszedłem do projektu nadrzędnego

Właściwości -> Ścieżka wbudowana

usunąłem tam bibliotekę JRE, ale nie ma już biblioteki JRE w projekcie nadrzędnym.

Francisco Souza
źródło
0

Żadne z tych rozwiązań nie działało dla mnie. W moim przypadku problem polegał na tym, że miałem .javapliki do generowania kodu Java i przypadkowo utworzyłem plik o nazwie Class.java(treść nie ma znaczenia). Usunięcie pliku rozwiązało problem.

HappyEvilSlosh
źródło