#java #maven
#java #maven
Вопрос:
Я пытался решить эту проблему в течение 3 часов, и я не знаю, в чем проблема.
Для справки я запускаю Java 11 и использую java parbolied 1.18. Это ошибка, на которую я потратил так много времени:
Exception in thread "main" java.lang.RuntimeException: Error creating extended parser class: null
at org.parboiled.Parboiled.createParser(Parboiled.java:58)
at com.mycompany.myname.Main.main(Main.java:15)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.parboiled.transform.AsmUtils.createClassReader(AsmUtils.java:56)
at org.parboiled.transform.ClassNodeInitializer.process(ClassNodeInitializer.java:62)
at org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:44)
at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39)
at org.parboiled.Parboiled.createParser(Parboiled.java:54)
... 1 more
Это pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>MyName</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.parboiled/parboiled-java -->
<dependency>
<groupId>org.parboiled</groupId>
<artifactId>parboiled-java</artifactId>
<version>1.1.8</version>
</dependency>
</dependencies>
</project>
Комментарии:
1. Какова 15-я строка вашего Main.java ??
2. Похоже, что ошибка в вашем коде, а не в Maven. Я не вижу причин, по которым могло бы помочь понижение версии Java до устаревшей / с истекшим сроком службы. Вероятно, вам просто нужно отладить свой код обработанную библиотеку, чтобы выяснить, что пошло не так.
3. TimeParser parser = Parboiled.createParser(TimeParser.class ); Это 15-я строка моего основного
4. Я попытался отладить свой код: я получаю то же сообщение. Точно так же, как показано ниже
5. Вызвано: java.lang. Исключение IllegalArgumentException в org.objectweb.asm.ClassReader. <инициализация> (неизвестный источник) в org.objectweb.asm.ClassReader. <инициализация> (неизвестный источник) в org.objectweb.asm.ClassReader. <инициализация> (неизвестный источник) в org.parboiled.transform. AsmUtils.createClassReader(AsmUtils.java:56) в org.parboiled.transform.ClassNodeInitializer.process(ClassNodeInitializer.java:62) в org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:44)
Ответ №1:
Проблема находится в используемой библиотеке, вызывающей исключение:
Exception in thread "main" java.lang.RuntimeException: Error creating extended parser class: null
at org.parboiled.Parboiled.createParser(Parboiled.java:58)
at com.mycompany.myname.Main.main(Main.java:15)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.parboiled.transform.AsmUtils.createClassReader(AsmUtils.java:56)
at org.parboiled.transform.ClassNodeInitializer.process(ClassNodeInitializer.java:62)
at org.parboiled.transform.ParserTransformer.extendParserClass(ParserTransformer.java:44)
at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:39)
at org.parboiled.Parboiled.createParser(Parboiled.java:54)
точно показывает, что он использует доступ asm к файлам классов, зависящим от JDK, который необходимо обновить в коде, чтобы корректно работать с JDK 11. Библиотека, на которую ссылаются, не работает с JDK 11. Уже есть несколько проблем, связанных с JDK11.
Это не имеет ничего общего с Maven. Maven работает до самых последних версий JDK 15 … 16 (EA) … и т.д.
Комментарии:
1. Спасибо всем за вашу помощь. Проблема заключалась в том, что мне нужно было обновить до последней версии java paraboiled.