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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage