(Закрыто) Maven не работает в Java 11, должен ли я понизить?

#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.