Otrzymuję ten błąd, kiedy dołączam bibliotekę open source, którą musiałem skompilować ze źródła. Teraz wszystkie sugestie w sieci wskazują, że kod został skompilowany w jednej wersji i wykonany w innej (nowej na starej). Jednak mam tylko jedną wersję środowiska JRE w moim systemie. Jeśli uruchomię polecenia:
$ javac -version
javac 1.5.0_18
$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)
i sprawdź w Eclipse właściwości biblioteki java 1.5.0_18
Dlatego muszę podsumować coś innego, wewnętrznego dla samej klasy, rzuca wyjątek? Czy to w ogóle możliwe?
Odpowiedzi:
Nauczyłem się, że takie komunikaty o błędach są zwykle prawidłowe. Kiedy MOŻLIWE (Twoim zdaniem) nie może być to, co mówi zgłaszany błąd, udajesz się na poszukiwanie problemu w innym obszarze ... tylko po to, aby dowiedzieć się kilka godzin później, że pierwotny komunikat o błędzie był rzeczywiście poprawny.
Ponieważ używasz Eclipse, myślę, że Thilo ma rację. Najbardziej prawdopodobnym powodem, dla którego otrzymujesz ten komunikat, jest to, że jeden z Twoich projektów kompiluje klasy 1.6. Nie ma znaczenia, czy masz w systemie tylko 1.5 JRE, ponieważ Eclipse ma swój własny kompilator (nie javac) i potrzebuje tylko 1.5 JRE do skompilowania klas 1.6. Może to być dziwne, a ustawienie musi być odznaczone, aby to umożliwić, ale po prostu udało mi się to zrobić.
W przypadku danego projektu sprawdź właściwości projektu (zwykle Alt + Enter), sekcja Kompilator Java. Oto obraz projektu skonfigurowanego do kompilacji 1.6, ale tylko z 1.5 JRE.
źródło
Czy próbowałeś wykonać pełne „czyszczenie”, a następnie przebudować w Eclipse (Projekt-> Wyczyść ...)?
Czy jesteś w stanie skompilować i uruchomić z "javac" i "java" bezpośrednio z wiersza poleceń? Czy to działa poprawnie?
Jeśli klikniesz prawym przyciskiem myszy projekt, przejdź do „Właściwości”, a następnie do „Ścieżki budowania Java”, czy są jakieś podejrzane wpisy na którejkolwiek z zakładek? Zasadniczo jest to Twoja ścieżka CLASSPATH.
W preferencjach Eclipse możesz również dokładnie sprawdzić sekcję „Zainstalowane środowiska JRE” w sekcji „Java” i upewnić się, że jest zgodna z tym, co powinna.
Zdecydowanie masz gdzieś nieaktualny plik .class lub otrzymujesz niezgodność czasu kompilacji / czasu wykonywania w wersjach Java, których używasz.
źródło
Czy skompilowałeś z Eclipse? Używa innego kompilatora (nie javac). To nie powinno powodować tego błędu (jeśli wszystko jest poprawnie skonfigurowane), ale możesz spróbować skompilować go za pomocą javac.
Jeśli to rozwiązało problem, spróbuj sprawdzić, czy Eclipse ma jakieś nieprawidłowe ustawienia kompilatora. W szczególności celuj w Javę 5.
źródło
Mam też ten sam błąd. Powód, dla którego kompilowałem projekt przy użyciu Mavena. Miałem JAVA_HOME wskazujące na JDK7 i dlatego java 1.7 była używana do kompilacji, a podczas uruchamiania projektu korzystałem z JDK1.5. Zmiana poniższego wpisu w pliku .classpath lub zmiana zaćmienia jak na zrzucie ekranu rozwiązała problem.
lub zmień konfiguracje uruchamiania eclipse jako
źródło
Sprawdź również wszystkie pliki jar w projekcie, które zostały skompilowane dla wyższej wersji języka Java. Jeśli są to Twoje własne biblioteki, możesz to naprawić, zmieniając atrybut wersji docelowej na javac
źródło
Innym scenariuszem, w którym może się to zdarzyć, jest uruchomienie wystąpienia zaćmienia (w celu debugowania itp.) Z zaćmienia hosta - w takim przypadku zmiana poziomu projektu lub biblioteki JRE na samej ścieżce klas projektu nie pomaga. Liczy się środowisko JRE używane do uruchamiania docelowego środowiska zaćmienia.
źródło
Zawsze sprawdzaj też oczywiste. Wystąpił ten błąd raz, gdy przypadkowo złapałem niewłaściwy zasób dla akcji dodawania i usuwania serwera. Łatwo można to przeoczyć.
źródło
Usunięcie plików ustawień specyficznych dla projektu (obszar roboczy Eclipse / folder projektu / .settings /) z folderu projektu również wystarczy. Oczywiście musimy wyczyścić projekt i skompilować go po usunięciu.
źródło
zmiana projektu na java 1.7: Aby to działało, wykonaj następujące kroki:
Nie działa?
Wciąż nie działa?
w katalogu twojego projektu: edytuj .settings / org.eclipse.jdt.core.prefs> upewnij się, że twój poziom docelowy jest zastosowany
Powodzenia!
źródło
rozwiązałem ten problem, zmieniając jre wymagane dla serwera (w moim przypadku jest to tomcat). Na karcie Serwer w eclipse kliknij dwukrotnie serwer (aby otworzyć stronę konfiguracji serwera), kliknij Środowisko uruchomieniowe, a następnie zmień wymagane JRE
źródło