Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
20 Сен 2024
2 мин
479

Решение ошибки java.lang.UnsupportedClassVersionError: Unsupported major.minor version

Ошибка java.lang.UnsupportedClassVersionError: Unsupported major.minor version встречается при попытке запуска Java-программы и свидетельствует о несовместимости версий Java, используемых

Ошибка java.lang.UnsupportedClassVersionError: Unsupported major.minor version встречается при попытке запуска Java-программы и свидетельствует о несовместимости версий Java, используемых при компиляции и запуске кода.

Например, когда код был скомпилирован с использованием JDK версии 1.8, а пытаются запустить его на JRE версии 1.7, возникает именно такая ошибка.

Причина ошибки

Основная причина этой ошибки — различие в версиях Java. Каждая версия Java обозначается парой чисел: старший (major) и младший (minor) номера версии. При компиляции кода эта информация о версии встраивается в байт-код. Если версия JRE, на которой происходит запуск, старше версии, использованной при компиляции, виртуальная машина Java не сможет понять байт-код и выдаст ошибку UnsupportedClassVersionError.

Решение ошибки

Есть несколько способов решения этой проблемы:

  1. Обновить JRE до версии, соответствующей версии JDK, использованной при компиляции. Это самый простой и очевидный способ. Если код был скомпилирован на JDK 1.8, то и JRE должен быть не ниже этой версии.

  2. Понизить версию JDK до версии исполняемого JRE. Если код не использует функционал, доступный только в более новых версиях Java, то можно без проблем использовать более старую версию JDK.

  3. Использовать флаг -target при компиляции. Этот флаг позволяет указать версию байт-кода, которую должен генерировать компилятор. Таким образом, можно скомпилировать код так, чтобы он работал на более старой версии JRE.

PATH в JRE и JDK

Переменная PATH используется операционной системой для поиска исполняемых файлов. В контексте Java PATH должен указывать на директорию bin в установленной версии JDK или JRE.

Основное отличие состоит в том, что в JDK, в дополнение к JRE, содержатся дополнительные инструменты, такие как компилятор javac, в то время как JRE содержит только среду выполнения для запуска Java-приложений. Если требуется компилировать Java-код, то PATH должен указывать на директорию bin в JDK. В противном случае достаточно указать на JRE.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий