Совместим ли log4j с jdk21?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Совместим ли log4j с jdk21?

Сообщение Anonymous »

Когда я пытаюсь собрать с помощью ant одиночный jar-файл, использующий jar-in-jar-loader, все внутри выглядит так, как ожидалось. Содержимое манифеста

Код: Выделить всё

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.10.14
Created-By: 21+35-LTS-2513 (Oracle Corporation)
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Rsrc-Main-Class: a.b.MyApp
Multi-Release: true
Rsrc-Class-Path: ./ lib/log4j/log4j-api-2.22.1.jar lib/log4j/log4j-cor
e-2.22.1.jar lib/jdatepicker-1.3.4.jar
Class-Path: .

Код: Выделить всё

jar-in-jar-loader.zip
генерируется eclipse 2023-12, который использует jdk21, все файлы, похоже, находятся на месте в myApp.jar

Однако, когда я использую java -jar myApp.jar, я вижу

Код: Выделить всё

WARNING: Runtime environment or build system does not support multi-release JARs. This will impact location-based features.
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:62)
Caused by: java.lang.UnsupportedOperationException: No class provided, and an appropriate one cannot be found.
at org.apache.logging.log4j.LogManager.callerClass(LogManager.java:585)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:610)
at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:597)
at a.b.log.Log.getLogger(Log.java:48)
at a.b.MyApp.handleInputParameters(MyApp.java:97)
at a.b.MyApp.main(MyApp.java:33)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 2 more
Когда я запускаю приложение под eclipse, все работает правильно.

Означает ли это, что log4j нельзя использовать с jdk21 (я использую версию Oracle)?

Как это проверить? Я пробовал на веб-странице log4j и ничего не нашел (особенно в журнале изменений). Я также пытался понизить версию проекта до jdk17, тоже ничего.

Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/777 ... with-jdk21
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»