Как мне это исправить?
Эта ошибка означает, что JRE, которая используется для выполнения кода вашего класса, не распознает используемую версию Java. Обычно потому, что версия Java, которая сгенерировала ваш файл класса (то есть скомпилировала его), более новая.
Чтобы исправить это, вы можете либо
a) Скомпилируйте исходники Java с той же или более старой версией компилятора Java, которая будет использоваться для его запуска. т.е. установите соответствующий JDK.
б) Скомпилируйте исходные коды Java с помощью более новой версии компилятора Java, но в режиме совместимости. т.е. используйте параметр -target
.
c) Запустите ваши скомпилированные классы в JRE той же или более новой версии, что и JDK, использованный для компиляции классов.
Вы можете проверить версии, которые вы используете в настоящее время, с javac -version
для компилятора и java -version
для среды выполнения.
Должен ли я установить JDK и настроить мою переменную PATH на JDK вместо JRE?
Для компиляции обязательно установите и настройте конкретный JDK, который вам нужен.
Для времени выполнения вы можете использовать тот, который поставляется с JDK, или автономную JRE, но в любом случае убедитесь, что вы установили правильные версии и что вы настроили свой PATH, чтобы не было никаких сюрпризов.
В чем разница между переменной PATH в JRE или JDK?
Переменная среды PATH сообщает командной оболочке, где искать вводимую команду. Когда вы набираете java
, интерпретатор командной оболочки просматривает все местоположения, указанные в переменной PATH
, слева направо, чтобы найти подходящий исполняемый файл java
для запуска. Если у вас установлено несколько версий Java, т. Е. У вас есть исполняемый файл java
в нескольких местах, указанных в переменной PATH, то при переходе слева направо будет тот, который будет выполняться первым.
Команда компилятора javac
поставляется только с JDK. Команда времени выполнения - java
, поставляется с JDK и находится в JRE.
Вероятно, у вас установлена одна версия (51.0 = Java 7) javac
, и у вас также установлена такая же версия java
, но другая предыдущая версия java
появляется раньше в PATH и поэтому вызывается вместо тот, которого вы ожидаете.
person
Vihung
schedule
26.03.2015
Unsupported major.minor version 51.0 (Is your Java new enough?)
- person Thorbjørn Ravn Andersen   schedule 27.06.2018