Пропарено под Java 21: неподдерживаемый файл класса, основная версия 65. ⇐ JAVA
Пропарено под Java 21: неподдерживаемый файл класса, основная версия 65.
Я использую пропаренный в качестве зависимости:
// https://mvnrepository.com/artifact/org. ... oiled-java API 'org.parboiled:parboiled-java:1.4.1' После обновления Java 17 до 21 я получаю эту ошибку во время выполнения при попытке создать синтаксический анализатор:
java.lang.RuntimeException: ошибка при создании расширенного класса синтаксического анализатора: неподдерживаемый файл класса, основная версия 65 в org.parboiled.Parboiled.createParser(Parboiled.java:58) Файлы классов версии 65 — это Java 21. Класс синтаксического анализатора теперь действительно скомпилирован с целью 21. Почему с ним не работает пропаренный? Есть ли какие-либо другие обходные пути, кроме перехода на целевую версию 17?
Минимально воспроизводимый пример:
build.gradle
плагины { идентификатор "приложения" } применить плагин: «Java» доб. { javaMainClass = "test.TestParser" } приложение { ИмяГлавногоКласса = ГлавныйКласс Java } зависимости { реализация 'org.parboiled:parboiled-java:1.4.1' } TestParser.java
тест пакета; импортировать org.parboiled.BaseParser; импортировать org.parboiled.Parboiled; импортировать org.parboiled.Rule; импортировать org.parboiled.annotations.BuildParseTree; @BuildParseTree общедоступный класс TestParser расширяет BaseParser { публичное правило InputLine() { вернуть последовательность (цифра (), EOI); } Правило Цифра() { вернуть CharRange('0', '9'); } public static void main(String[] args) { Парсер TestParser = Parboiled.createParser(TestParser.class); } } запуск градиента Конфигурация по требованию — это инкубационная функция. > Задача :test2:компилироватьJava > Задача: test2:processResources НЕТ ИСТОЧНИКА > Задача :test2:классы > Задача :test2:выполнить ОШИБКА Исключение в потоке «основной» java.lang.RuntimeException: ошибка создания расширенного класса синтаксического анализатора: неподдерживаемый файл класса, основная версия 65 в org.parboiled.Parboiled.createParser(Parboiled.java:58) в test.TestParser.main(TestParser.java:34) Вызвано: java.lang.IllegalArgumentException: неподдерживаемый файл класса, основная версия 65. в org.objectweb.asm.ClassReader.(ClassReader.java:199) в org.objectweb.asm.ClassReader.(ClassReader.java:180) в org.objectweb.asm.ClassReader.(ClassReader.java:166) в org.objectweb.asm.ClassReader.(ClassReader.java:287) в org.parboiled.transform.AsmUtils.createClassReader(AsmUtils.java:59) в org.parboiled.transform.ClassNodeInitializer.process(ClassNodeInitializer.java:62) в org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:44) в org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39) в org.parboiled.Parboiled.createParser(Parboiled.java:54) ... 1 более
Я использую пропаренный в качестве зависимости:
// https://mvnrepository.com/artifact/org. ... oiled-java API 'org.parboiled:parboiled-java:1.4.1' После обновления Java 17 до 21 я получаю эту ошибку во время выполнения при попытке создать синтаксический анализатор:
java.lang.RuntimeException: ошибка при создании расширенного класса синтаксического анализатора: неподдерживаемый файл класса, основная версия 65 в org.parboiled.Parboiled.createParser(Parboiled.java:58) Файлы классов версии 65 — это Java 21. Класс синтаксического анализатора теперь действительно скомпилирован с целью 21. Почему с ним не работает пропаренный? Есть ли какие-либо другие обходные пути, кроме перехода на целевую версию 17?
Минимально воспроизводимый пример:
build.gradle
плагины { идентификатор "приложения" } применить плагин: «Java» доб. { javaMainClass = "test.TestParser" } приложение { ИмяГлавногоКласса = ГлавныйКласс Java } зависимости { реализация 'org.parboiled:parboiled-java:1.4.1' } TestParser.java
тест пакета; импортировать org.parboiled.BaseParser; импортировать org.parboiled.Parboiled; импортировать org.parboiled.Rule; импортировать org.parboiled.annotations.BuildParseTree; @BuildParseTree общедоступный класс TestParser расширяет BaseParser { публичное правило InputLine() { вернуть последовательность (цифра (), EOI); } Правило Цифра() { вернуть CharRange('0', '9'); } public static void main(String[] args) { Парсер TestParser = Parboiled.createParser(TestParser.class); } } запуск градиента Конфигурация по требованию — это инкубационная функция. > Задача :test2:компилироватьJava > Задача: test2:processResources НЕТ ИСТОЧНИКА > Задача :test2:классы > Задача :test2:выполнить ОШИБКА Исключение в потоке «основной» java.lang.RuntimeException: ошибка создания расширенного класса синтаксического анализатора: неподдерживаемый файл класса, основная версия 65 в org.parboiled.Parboiled.createParser(Parboiled.java:58) в test.TestParser.main(TestParser.java:34) Вызвано: java.lang.IllegalArgumentException: неподдерживаемый файл класса, основная версия 65. в org.objectweb.asm.ClassReader.(ClassReader.java:199) в org.objectweb.asm.ClassReader.(ClassReader.java:180) в org.objectweb.asm.ClassReader.(ClassReader.java:166) в org.objectweb.asm.ClassReader.(ClassReader.java:287) в org.parboiled.transform.AsmUtils.createClassReader(AsmUtils.java:59) в org.parboiled.transform.ClassNodeInitializer.process(ClassNodeInitializer.java:62) в org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:44) в org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39) в org.parboiled.Parboiled.createParser(Parboiled.java:54) ... 1 более
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Общая ошибка во время преобразования: неподдерживаемый файл класса, основная версия 67.
Anonymous » » в форуме JAVA - 0 Ответы
- 66 Просмотры
-
Последнее сообщение Anonymous
-