gpt4 book ai didi

java - 由 : java. lang.ClassNotFoundException : org. slf4j.LoggerFactory 引起

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:40 25 4
gpt4 key购买 nike

java和slf4j的一些问题使用想法制作项目,没关系。但是如果我尝试用 gradle 制作 jar,我会遇到一些问题。

构建.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'
}
}

测试.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 package)同样的问题。它在类路径中找不到 Logger 和 LoggerFactory 的一些原因。

最佳答案

感谢 Michael 记得 fat jar。在你的评论试图用谷歌搜索:“gradle build fat jar”并修改了我的 build.gradle 之后

jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class': 'Test'
}
}

关于java - 由 : java. lang.ClassNotFoundException : org. slf4j.LoggerFactory 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com