Клас був скомпільований більш пізньою версією середовища Java


86

Під час запуску скрипту селену я отримую таке повідомлення про помилку в консолі Eclipse:

Клас був скомпільований більш пізньою версією середовища Java (версія файлу класу 53.0), ця версія середовища виконання Java розпізнає лише версії файлів класів до 52.0.


  • Версія Java: 8
  • IDE: Eclipse Oxygen
  • Версія Firefox: 46

6
версія файлу класу 53 = Java 9. Ваш Java 8 JVM не може виконати код Java 9.
Howlger

Відповіді:


109

Це лише невідповідність версії. Ви скомпілювали свій код за допомогою 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?
Євген

Я вважаю, що оновлення все одно не призведе до проблем, оскільки проблем зі зворотною сумісністю не буде. І це було логічно, оскільки я вважаю, що компілятор оновлений до останньої версії.
Нітін

9
Ви думаєте з точки зору невеликого проекту з пісочницею; для корпоративних проектів - це ніколи не є легким зрушенням. Наприклад, деякі помилки були виправлені в 8 для загальних препаратів, і ви покладалися на їх побічні ефекти в 7; або HashMapпорядок змінився з 7 на 8 ... і т. д. Я зіткнувся з цим. Простіше кажучи - перехід до 9 - це хороший варіант, але ніколи не простий і швидкий
Євген

якщо ви заявляєте з точки зору рівнів корпоративних проектів, так, ви маєте рацію, і я твердо погоджуюся з цим. Оновлення / зниження рейтингу ніколи не є найбільш життєздатним варіантом у таких сценаріях.
Нітін

@nithinpankaj По суті кожного разу, коли я намагався використовувати Java 9, виникала нова помилка. Не маючи підстав для оновлення, я перестав намагатися, і я досить погано думаю про Java 9.
Ерханніс,

37

IDE: Затемнення кисню. 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


6

53розшифровується як java-9, тож це означає, що з будь-яким класом, який у вас був, було скомпільовано, javac-9і ви намагаєтесь його запустити jre-8. Або перекомпілюйте цей клас за javac-8допомогою jre-9


1

Я пишу це, тому що мені було важко зрозуміти інші відповіді.

По суті, ваш JRE не оновлюється та / або Eclipse не налаштований на використання останнього JRE.

У Windows перейдіть до Панелі керування -> Програми -> Java -> оновити та перейдіть до оновлення Java

або якщо у вас немає Java, перейдіть на веб-сайт Oracle і завантажте найновіший JRE.

Після цього перейдіть у затемнення, і під поданням проекту клацніть правою кнопкою миші на своєму проекті, виберіть Java Build Path, двічі клацніть на системну бібліотеку JRE, а потім Виберіть робочу область за замовчуванням JRE 14.1.

Якщо найновіша версія Java тут не відображається, можливо, вона не встановлена. Перевірте свою версію JRE (НЕ JDK) і переконайтеся, що вона є останньою. Якщо це так, спробуйте перезавантажити комп'ютер, а потім повторіть спробу.


0

Перейдіть до розділу Проект, натисніть на властивості> потім на компілятор Java> перевірте рівень відповідності компілятора 1,8, або внизу не повинно бути жовтого попередження


0

Оновлення залежностей gradle працює для мене: клацніть правою кнопкою миші на проекті -> Gradle -> Оновити проект Gradle.


-1

Для тимчасового рішення просто клацніть правою кнопкою миші на Проект => Властивості => Компілятор Java => там, будь ласка, виберіть рівень відповідності компілятора 1.8 => сумісність .class 1.8 => сумісність з джерелом 1.8 .

Тоді ваш код почне виконуватися у версії 1.8 .

Дякую та поваги, Акшай Кенджале.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.