Java集成HikariCP时出现org.slf4j.LoggerFactory缺失异常求助
解决HikariCP运行时
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory异常 1. 核对依赖版本与完整性
HikariCP对SLF4J版本有兼容性要求,必须保证slf4j-api和slf4j-simple版本完全一致,且与HikariCP版本匹配:
- 若使用HikariCP 4.x系列,搭配SLF4J 1.7.x版本;若使用HikariCP 5.x系列,搭配SLF4J 2.x版本。
- 修正后的pom.xml依赖示例:
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>4.0.3</version> <!-- 替换为你实际使用的版本 --> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> <scope>runtime</scope> <!-- 仅运行时依赖,避免编译阶段干扰 --> </dependency>
- 执行
mvn clean install命令,清理本地仓库缓存并重新构建,确保依赖完整下载。
2. 检查IntelliJ IDEA的配置与缓存
- 打开
File -> Project Structure -> Modules -> Dependencies,确认slf4j-api和slf4j-simple已被正确引入,无红色警告标识。 - 执行
File -> Invalidate Caches... -> Invalidate and Restart,清空IDEA缓存并重启,解决缓存导致的依赖加载异常。 - 检查运行配置:在
Run/Debug Configurations中,确认Use classpath of module选择的是当前项目模块,且类路径中包含SLF4J相关依赖。
3. 排查依赖冲突
- 执行
mvn dependency:tree命令生成依赖树,查看是否有其他第三方依赖引入了不同版本的SLF4J实现(如slf4j-log4j12、logback-classic等)。 - 若存在冲突,在对应的依赖中排除冲突的SLF4J模块,示例:
<dependency> <groupId>xxx</groupId> <artifactId>xxx-dependency</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency>
4. 确认运行时类路径
- 若为打包后运行,检查生成的jar包是否包含SLF4J相关依赖(可通过解压jar包查看
BOOT-INF/lib或WEB-INF/lib目录)。若使用Maven打包,需确保maven-shade-plugin或maven-assembly-plugin配置正确,将依赖打入包中。 - 直接运行主方法时,在IDEA运行配置的
Classpath标签页,确认SLF4J的jar包已被添加到类路径中。
内容的提问来源于stack exchange,提问作者user24696530
相关产品推荐
相关产品推荐

