UnsupportedClassVersionError

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Zmiana poziomu języka Java, aby uruchamiać skompilowany kod na starszych środowiskach uruchomieniowych

Pracuję nad pewnym projektem w Javie. Używam IntelliJ IDEA i zdecydowałem się na OpenJDK-18 od Oracle. Ale… to środowisko jest domyślnie dostępne tylko podczas kompilacji w IDE. W systemie mam OpenJDK-11. Próba uruchomienia kodu skompilowanego przez JDK-18 na JDK-11 daje mi następujący komunikat:

Text
java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 62.0), this version of the Java Runtime only recognizes class file versions up to 55.

Aby sobie z tym poradzić, przejdź do ustawień modułu (lub Project Structure) i zmień Language Level na niższą wartość. Jeśli kompilujesz w wersji 18, będzie ustawiona wersja 18. Przełącz na wersję 11 (local variables syntax for lambda parameters) i skompiluj ponownie. Teraz będziesz mógł uruchomić aplikację nawet na starszym JDK.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „UnsupportedClassVersionError”, 2 września 2022, https://michalasobczak.pl/pl/posts/unsupportedclassversionerror.html