Класс был скомпилирован более новой версией Java Environment.

87

При запуске сценария selenium я получаю следующее сообщение об ошибке в консоли Eclipse:

Класс был скомпилирован более свежей версией Java Environment (версия файла класса 53.0), эта версия Java Runtime распознает только версии файлов классов до 52.0.0.


  • Версия Java: 8
  • IDE: Eclipse Oxygen
  • Версия Firefox: 46
user5218071
источник
6
class file version 53 = Java 9. Ваша Java 8 JVM не может выполнять код Java 9.
howlger

Ответы:

111

Это просто несовпадение версий. Вы скомпилировали свой код с использованием Java версии 9, и ваша текущая JRE - версия 8. Попробуйте обновить JRE до 9.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
Нитин
источник
24
давать советы по логическому выбору может быть совсем не лучшим решением ... что, если проект изначально запускается с jre-8 и кто-то случайно скомпилировал какой-то модуль против 9?
Евгений
Я считаю, что обновление по-прежнему не вызовет никаких проблем, поскольку не будет проблем с обратной совместимостью. И это было логично, поскольку я считаю, что компилятор обновлен до последней версии.
Nithin
9
вы думаете о небольшом проекте в песочнице; для корпоративных проектов - это всегда непросто. Например, некоторые ошибки были исправлены в 8 для дженериков, которые вы полагались на их побочные эффекты в 7; или HashMapпорядок изменился с 7 на 8 ... и т.д. Я с этим столкнулся. Проще говоря - переход на 9 - хороший вариант, но никогда не бывает простым и быстрым
Евгений
если вы говорите с точки зрения уровней корпоративных проектов, да, вы правы, и я полностью согласен с этим. Обновление / возврат к более ранней версии никогда не является наиболее приемлемым вариантом в таких сценариях.
Nithin
@nithinpankaj По сути, каждый раз, когда я пытался использовать Java 9, возникала новая ошибка. Без причины для обновления я перестал пытаться и плохо
отношусь
37

IDE: Eclipse Oxygen.3

Чтобы временно исправить проблему, сделайте следующее:

Project menu> Properties> Java Compiler> Compiler compliance level>1.8

Постоянное исправление, вероятно, предполагает установку JDK 9.

FYI 1.8 - это то, что называется Java 8.

Боковая панель

Я недавно вернулся к Java после набега на C # (глоток свежего воздуха) и установил Eclipse Oxygen на чистую систему, на которой раньше никогда не устанавливалась Java. По умолчанию это все с новой установкой Eclipse Oxygen, но каким-то образом Eclipse не может получить свои собственные параметры, соответствующие установленному jdk. Это второй созданный мной проект и второй раз, когда я столкнулся с этой головной болью. Пора вернуться к C #?

Связанный вопрос

был скомпилирован более свежей версией Java Runtime (версия файла класса 53.0)

Эрик Д
источник
интересно. Значит ли это, что байт-код НЕ поддерживает прямую совместимость?
toto '30
10

Вы можете попробовать этот способ

javac --release 8 yourClass.java
Кришна Сантош Нидри
источник
6

53означает java-9, поэтому это означает, что какой бы класс вы ни скомпилировали, javac-9и вы пытаетесь его запустить jre-8. Либо перекомпилируйте этот класс, javac-8либо используйте jre-9

Евгений
источник
1

Я пишу это, потому что мне трудно понять другие ответы.

По сути, ваша JRE не обновляется и / или Eclipse не настроен на использование самой последней JRE.

В Windows перейдите в Панель управления -> Программы -> Java -> обновить и перейдите к обновлению java.

или, если у вас нет Java, перейдите на веб-сайт Oracle и загрузите самую последнюю версию JRE.

Как только это будет сделано, войдите в eclipse и в представлении проекта щелкните правой кнопкой мыши свой проект, выберите Java Build Path, дважды щелкните JRE System Library, затем выберите Workspace Default JRE 14.1.

Если последняя версия Java не отображается здесь, вероятно, она не установлена. Проверьте свою версию JRE (НЕ JDK) и убедитесь, что она последняя. Если это так, попробуйте перезагрузить компьютер, а затем повторите попытку.

Джейкоб Уотерс
источник
0

Перейдите в раздел «Проект», нажмите «Свойства»> затем «Компилятор Java»> убедитесь, что уровень соответствия компилятора равен 1,8, или внизу не должно быть желтого предупреждения.

ARVIND1994
источник
0

У меня работает обновление зависимостей Gradle: щелкните правой кнопкой мыши проект -> Gradle -> Обновить проект Gradle.

Карлос Касаллас
источник
0

У меня была аналогичная проблема с консолью после создания Jar в Intellij. Использование конфигурации Java для обновления до более новой версии (Windows -> Настроить Java -> Обновить -> Обновить сейчас) не работало и зависало на версии 1.8 (Java 8).

Чтобы переключиться на более новую версию локально, мне пришлось установить Java 15 JDK с https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html и добавить его в настройки моей среды выполнения Java.

Параметры среды выполнения Java

ILally
источник
-1

Для временного решения просто щелкните правой кнопкой мыши Project => Properties => Java compiler => там выберите уровень соответствия компилятора 1.8 => совместимость .class 1.8 => исходная совместимость 1.8 .

Затем ваш код начнет выполняться в версии 1.8 .

С уважением и уважением, Акшай Кенджале.

Акшай Кенджале
источник