Ursache: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
einige Probleme mit Java und SLF4J gemacht Projekt mit Idee und es ist in Ordnung. Aber für den Fall, dass ich mit gradle ein Glas machen will, habe ich einige Probleme.
build.gradle
group 'test.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile 'org.slf4j:slf4j-api:1.7.20'
compile 'ch.qos.logback:logback-classic:1.1.7'
}
jar {
manifest {
attributes 'Main-Class': 'Test'
}
}
Test.java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
LOGGER.info("info");
}
}
Terminal
gradle build
java -jar target/HttpServer-1.0-SNAPSHOT.jar
Ausgabe
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at HttpServerHH.Main.<clinit>(Main.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Ich habe versucht, gradle / maven (MVN-Paket) das gleiche Problem zu verwenden. Einige Gründe, warum Logger und LoggerFactory nicht im Klassenpfad gefunden werden können.