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

编程入门 行业动态 更新时间:2024-10-24 06:32:09
本文介绍了引起:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

java和slf4j的一些问题使用idea创建项目并且没问题。但是,如果我尝试使用gradle制作jar,我遇到了一些问题。

build.gradle

group'test.test' version'1.0-SNAPSHOT' apply plugin:'java' sourceCompatibility = 1.8 存储库{ mavenCentral()} 依赖关系{ testCompile组:'junit',名称:'junit',版本:' 4.11' compile'org.slf4j:slf4j-api:1.7.20' compile'c​​h.qos.logback:logback-classic:1.1.7' } $ b $ jar { manifest {属性'Main-Class':'Test'} }

Test.java

import org.slf4j.Logger; 导入org.slf4j.LoggerFactory; public class Test { private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); public static void main(String [] args){ LOGGER.info(info); $ / code $ / pre $ b $终端:

gradle build java -jar target / HttpServer-1.0-SNAPSHOT.jar

输出:

线程main中的异常java.lang.NoClassDefFoundError: org / slf4j / LoggerFactory at HttpServerHH.Main。< clinit>(Main.java:15)导致:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory $ b $在java。 net.URLClassLoader.findClass(URLClassLoader.java:381)$ b $在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java: 331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more

我试图使用gradle / maven(mvn package)相同的问题。在classpath中找不到Logger和LoggerFactory的一些原因。

解决方案

感谢Michael回忆有关胖子的事情。在您的评论尝试谷歌:gradle构建脂肪罐,并修改后我的build.gradle

jar {来自{ configurationspile.collect { it.isDirectory()?它:zipTree(它)} } 清单{属性'Main-Class':'Test'} }

some problems with java and slf4j Made project using idea and it is ok. But in case I try to make jar with gradle I have some problems.

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

Output:

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.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

I tried to use gradle/maven (mvn package) the same problem. Some reasons it cannot find Logger and LoggerFactory in classpath.

解决方案

Thanks Michael for remembering about fat jar. After your comment tried to google: "gradle build fat jar" and after it modified my build.gradle

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

更多推荐

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

本文发布于:2023-11-14 10:17:32,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ClassNotFoundException   lang   java   LoggerFactory   slf4j

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!