IntelliJ / SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

Tacoma

Mitglied
Hallo Community,

ich hoffe, ich bin mit meinem Anliegen im richtigen Foren-Bereich.

Ich bin noch am Lernen von Java, Maven und IntelliJ. Bei meinem aktuellen Projekt möchte ich u.a. eine SQLite DB erzeugen. Hierzu habe ich, nach Hinweisen in Forum, die notwendigen jar Files über Maven in das Projekt integriert.

Hier das POM File.

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>SpiritLog</artifactId>
<version>1.0-SNAPSHOT</version>
<name>SpiritLog</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.8.2</junit.version>
</properties>

<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.2</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.45.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.23.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.23.1</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<executions>
<execution>
<!-- Default configuration for running with: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>com.example.spiritlog/com.example.spiritlog.HelloApplication</mainClass>
<launcher>app</launcher>
<jlinkZipName>app</jlinkZipName>
<jlinkImageName>app</jlinkImageName>
<noManPages>true</noManPages>
<stripDebug>true</stripDebug>
<noHeaderFiles>true</noHeaderFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

Beim "Run" wird mir das DB File soweit erzeugt. Leider kommt immer wieder der Hinweis bez. SLF4J

/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=60045:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/wchris/IdeaProjects/SpiritLog/target/classes:/Users/wchris/.m2/repository/org/openjfx/javafx-controls/17.0.2/javafx-controls-17.0.2.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-controls/17.0.2/javafx-controls-17.0.2-mac-aarch64.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-graphics/17.0.2/javafx-graphics-17.0.2.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-graphics/17.0.2/javafx-graphics-17.0.2-mac-aarch64.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-base/17.0.2/javafx-base-17.0.2.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-base/17.0.2/javafx-base-17.0.2-mac-aarch64.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-fxml/17.0.2/javafx-fxml-17.0.2.jar:/Users/wchris/.m2/repository/org/openjfx/javafx-fxml/17.0.2/javafx-fxml-17.0.2-mac-aarch64.jar:/Users/wchris/.m2/repository/org/xerial/sqlite-jdbc/3.45.2.0/sqlite-jdbc-3.45.2.0.jar:/Users/wchris/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/Users/wchris/.m2/repository/org/apache/logging/log4j/log4j-core/2.23.1/log4j-core-2.23.1.jar:/Users/wchris/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar org.osplus.spiritlog.SpiritLog
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Mein log4j2.properties
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{36} - %m%n

Ich habe in einigen Threads hier zu dem Thema geschaut und einige Korrekturen vorgenommen bez. Maven, log4j.properties, etc.. Leider ohne Erfolg.
Was mache ich hier noch falsch, dass diese Meldung kommt?
 

KonradN

Super-Moderator
Mitarbeiter
Was jetzt erst einmal auffällt: Du hast bei slf4j-simple ein scope von test. Damit ist das nur bei den Unit Tests im Classpath und das fehlt.

Das Problem mist dem StaticLoggerBinder ist dann, dass eben kein SLF4J binding vorhanden ist. Siehe dazu z.B. https://www.slf4j.org/codes.html:

Failed to load class org.slf4j.impl.StaticLoggerBinder​

This warning message is reported by slf4j-api version 1.7.x and earlier when the org.slf4j.impl.StaticLoggerBinder class could not be loaded into memory. This happens when no appropriate SLF4J binding could be found on the class path. Placing one (and only one) of slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.

Und auch noch der Hinweis: Das Problem kommt durch slf4j - Anpassungen an log4j (was eine andere Logging Library ist), werden das Problem daher nicht beheben. Und statt slf4j-simple wirst Du evtl. slf4j-log4j12 (https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12/2.0.12) nutzen wollen, damit die slf4j Loggign über log4j ausgegeben werden.
 

Tacoma

Mitglied
Was jetzt erst einmal auffällt: Du hast bei slf4j-simple ein scope von test. Damit ist das nur bei den Unit Tests im Classpath und das fehlt.

Das Problem mist dem StaticLoggerBinder ist dann, dass eben kein SLF4J binding vorhanden ist. Siehe dazu z.B. https://www.slf4j.org/codes.html:


Und auch noch der Hinweis: Das Problem kommt durch slf4j - Anpassungen an log4j (was eine andere Logging Library ist), werden das Problem daher nicht beheben. Und statt slf4j-simple wirst Du evtl. slf4j-log4j12 (https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12/2.0.12) nutzen wollen, damit die slf4j Loggign über log4j ausgegeben werden.
Hallo Konrad,

herzlichen Dank für die Info.

Den Scope für slf4j habe ich zuerst geändert auf runtime. Das brachte keine Veränderung. Ich habe den Scope dann da entfernt.

Dank Deines Hinweises habe ich mir nochmal das POM File in der IDE angeschaut und Maven. Ich habe über Maven dann 2 Fehler gefunden.
1) In dem POM File war 2x ein Eintrag zu log4j-core drin. Den doppelten Eintrag habe ich entfernt
2) Über Maven kam ein Hinweis dass ich anscheinend SLF4J 1.7.36 brauche und nicht die 2.0.12, die ich zuerst hatte. Ich habe dann in dem POM File slf4j-simple auf 1.7.36 umgestellt

Nach diesen Änderungen kam o.a. Meldung nicht mehr.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thomas55 Erste Schritte Modul läuft in IntelliJ, nicht in NetBeans Java Basics - Anfänger-Themen 11
W IntelliJ - Maven - Jump to failed Tests Java Basics - Anfänger-Themen 4
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
Z IntelliJ Java Basics - Anfänger-Themen 4
M Anfängerfehler - Tests JUnit IntelliJ Java Basics - Anfänger-Themen 24
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
R Intellij javafx --> jar Java Basics - Anfänger-Themen 11
D maven dependencies re-importieren in intellij Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
lougoldi Intellij oder Eclipse Java Basics - Anfänger-Themen 7
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
D Ausführbare jar/exe aus JAVAFX Projekt erstellen (IntelliJ) Java Basics - Anfänger-Themen 14
S e(fx)clipse oder intellij Java Basics - Anfänger-Themen 13
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
K org/slf4j/LoggerFactory kann nicht gefunden werden Java Basics - Anfänger-Themen 16
P java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory Java Basics - Anfänger-Themen 1
K Failed to create the Java Virtual Machine Java Basics - Anfänger-Themen 1
I Erste Schritte Native code library failed to load beim Ausführen eines Beispiels Java Basics - Anfänger-Themen 5
T JUnit test failed Java Basics - Anfänger-Themen 3
J JDK installieren JCreator erkennt JDK nicht. "Failed to start the following executable" Java Basics - Anfänger-Themen 3
H java.io.IOException: Failed to open... Java Basics - Anfänger-Themen 6
G Media Player: Failed to realize: com.sun.media.PlaybackEngine Java Basics - Anfänger-Themen 4
G failed.java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 4
Y Failed to load mein class manifest from. Java Basics - Anfänger-Themen 17
T Failed to load Main-Class manifest attribute from U.U.jar Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben