javaおよびslf4jのいくつかの問題 アイデアを使用してプロジェクトを作成しても問題ありません。しかし、私がgradleで瓶を作ろうとする場合、私はいくつかの問題があります。原因:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory
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");
}
}
ターミナル:
gradle build
java -jar target/HttpServer-1.0-SNAPSHOT.jar
出力:
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
私はgradle/maven(mvnパッケージ)と同じ問題を使用しようとしました。クラスパスにLoggerとLoggerFactoryが見つかりません。彼らは明らかにクラスパス上にないだから
ログバックコアがありませんでした。私の理解によると。また、依存関係をリフレッシュすると、プロジェクト - > Gradle->更新依存関係が右クリックされます。それはあなたのために働くはずです – Deepak
同じ結果 – dmitryvim