#java
#java
Вопрос:
главная» java.lang.UnsupportedClassVersionError: org/mje/runjobj/Main был скомпилирован более поздней версией среды выполнения Java (версия файла класса 58.0), эта версия среды выполнения Java распознает только версии файлов классов до 52.0
Спецификации
~ % java -версия
версия java «1.8.0_261» Java (TM) SE Среда выполнения (сборка 1.8.0_261-b12) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 25.261-b12, смешанный режим)
~ % javac -версия javac 1.8.0_261
~ % echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
Комментарии:
1. Любое объяснение?
Ответ №1:
На этом веб-сайте объясняется, как изменить JRE и компилятор вашего проекта. https://www.baeldung.com/java-lang-unsupportedclassversion . Для меня изменение JRE и компилятора на более ранние версии java устранило проблему.
Ответ №2:
JAVA_HOME не используется самой Java, иногда он используется приложениями, использующими Java, такими как maven или gradle, или вашей IDE (но у них, как правило, есть более надежные способы определения того, где зависает java).
файл класса версии 58 — это то, что создает javac14.
Невозможно, чтобы a javac
, который сообщает v1.8.0 при запуске javac -version
, создавал этот файл класса. Если вы получили этот файл класса от кого-то другого, попросите его перекомпилировать на java8 (или использовать -release 8
при его компиляции), или загрузите и установите AdoptOpenJDK 14.
Если вы создали это самостоятельно, какой бы процесс ни был создан, он не использовал тот javac
, который отвечал, 1.8.0
когда вы его запускали. Вам нужно будет объяснить, что запустило его (maven? затмение? intellij? gradle?) для получения дополнительной помощи.