Ist log4j mit jdk21 kompatibel?Java

Java-Forum
Guest
 Ist log4j mit jdk21 kompatibel?

Post by Guest »

Wenn ich versuche, mit einer einzelnen JAR-Datei zu bauen, die den Jar-in-Jar-Loader verwendet, sieht alles darin wie erwartet aus. Der Manifestinhalt ist

Code: Select all

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

Code: Select all

jar-in-jar-loader.zip
wird von Eclipse 2023-12 generiert, das jdk21 verwendet. Alle Dateien scheinen in myApp.jar vorhanden zu sein.

Wenn ich jedoch java -jar myApp.jar verwende, sehe ich

Code: Select all

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
Wenn ich die App unter Eclipse ausführe, funktioniert alles ordnungsgemäß.

Bedeutet das, dass log4j nicht mit jdk21 verwendet werden kann (ich verwende die Oracle-Version)?

Wie kann ich es überprüfen? Ich habe es auf der log4j-Webseite versucht und nichts gefunden (insbesondere im Changelog). Ich habe auch versucht, das Projekt auf jdk17 herunterzustufen, aber auch nichts.

Wie kann dieses Problem gelöst werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post