Вопрос-ответ

How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

Как исправить java.lang.UnsupportedClassVersionError: неподдерживаемая основная.младшая версия

Я пытаюсь использовать Notepad ++ в качестве универсального инструмента редактирования, запуска, компиляции и т.д.

У меня установлен JRE, и я настроил переменную path для .../bin каталога.

Когда я запускаю свой "Hello world" в Notepad ++, я получаю это сообщение:

java.lang.UnsupportedClassVersionError: test_hello_world :
Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
.........................................

Я думаю, проблема здесь в версиях; некоторые версии Java могут быть старыми или слишком новыми.


  1. Как мне это исправить?

  2. Должен ли я установить JDK и настроить переменную path на JDK вместо JRE?

  3. В чем разница между PATH переменной в JRE или JDK?

Переведено автоматически
Ответ 1

Указанный номер версии описывает версию JRE, с которой совместим файл класса.

Сообщенные основные цифры следующие:

Java SE 21 = 65,
Java SE 20 = 64,
Java SE 19 = 63,
Java SE 18 = 62,
Java SE 17 = 61,
Java SE 16 = 60,
Java SE 15 = 59,
Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(Источник: Википедия)

Чтобы устранить реальную проблему, вам следует попробовать либо запустить Java-код с более новой версией Java JRE, либо указать целевой параметр компилятору Java, чтобы дать указание компилятору создать код, совместимый с более ранними версиями Java.

Например, чтобы сгенерировать файлы классов, совместимые с Java 1.4, используйте следующую командную строку:

javac -target 1.4 HelloWorld.java

С более новыми версиями компилятора Java вы, вероятно, получите предупреждение о том, что путь к классу начальной загрузки не задан. Более подробная информация об этой ошибке доступна в сообщении в блоге Новое предупреждение javac за установку более старого исходного кода без bootclasspath.

Ответ 2

java.lang.UnsupportedClassVersionError происходит из-за более высокого JDK во время компиляции и более низкого JDK во время выполнения.

Ответ 3

В Eclipse я просто зашел в командное меню Window -> Preferences -> Java -> Compiler, а затем установил "Уровень соответствия компилятора" на 1.6.

Ответ 4

Не волнуйся, я решил проблему.

На самом деле все просто - вам нужно установить ОБА JRE / JDK с одинаковой версией.

JRE 6 -> JDK 6

JRE 7 -> JDK 7

И так далее.

2024-02-29 01:41 java jvm