maven项目java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory - 云起网

云起网

您现在的位置是:首页> 语言基础 -> maven项目java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

Article

maven项目java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

云起网2019-04-15 语言基础479
使用maven的时候老是出现这个问题,特别是新建开发项目的时候

发生java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

根据提示,错误的原因是因为缺少slf4j日志组件jar包,有以下几种情况:

1、没有引入jar slf4j-api

配置pom.xml或者引入3个jar

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
            <scope>compile</scope>
        </dependency>

slf4j需要结合具体日志系统来实现。SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。


2、检查下maven的本地仓库jar的文件大小是否正常。

由于网络原因什么的,可能导致这个版本的jar包是0字节,在本地仓库将slf4j-api 1.7.25版本的这个目录删了,然后回到项目重新引一下slf4j的依赖。


3、其他jar依赖引入了slf4j,然后项目pom.xml中又手动依赖了一个版本,两者冲突导致了异常。

在intellij的Maven projects的Dependencies中检查是否有重复的依赖。


文章评论

共有0条评论来说两句吧...