IntelliJ IDEA中程序包org.slf4j找不到的解决
IDEA中程序包org.slf4j找不到
最近导入公司项目的时候遇到个莫名其妙的问题,提示程序包org.slf4j找不到。查了下maven,slf4j和log4j都已经导入了。
捣鼓了老半天终于发现问题了:
记得把slf4j-log4j的包也一起导入进去
idea里面用svn直接import进来的项目竟然还会遇到依赖包的问题我也是挺无语的……
IDEA调试@Slf4j log.info无法打印日志,报错failed to load class “org.slf4j.imp.StaticLoggerBinder“及解决亲测可行
1. 报错 failed to load class “org.slf4j.imp.StaticLoggerBinder”
2. 解决 仅提供唯一一个包(slf4j-nop.jar、slf4j-reload4j.jar、slf4j-api.jar、slf4j-jdk14.jar或logback-classic.jar等)在类路径
来自 www.slf4j.org 官网的解析:
当在类路径上找不到SLF4J提供程序时,会报告此警告,即不是错误消息。将slf4j-nop.jar、slf4j-reload4j.jar、slf4j-jdk14.jar或logback-classic.jar等众多可用提供程序中的一个(也是唯一一个)放在类路径上应该可以解决问题。
在没有提供程序的情况下,SLF4J将默认为无操作(NOP)记录器提供程序。
请注意,slf4j-api 2.0.x及更高版本使用ServiceLoader机制。早期的版本依赖于静态绑定机制,而slf4j-api不再采用这种机制。请阅读常见问题解答条目SLF4J 2.0.0版本有什么变化?了解更多重要细节。
如果您负责打包应用程序而不关心日志记录,那么将slf4j-nop.jar放在应用程序的类路径上将消除此警告消息。请注意,库或框架等嵌入式组件不应声明对任何SLF4J提供程序的依赖,而应仅依赖于SLF4J-api。当库声明编译时依赖于SLF4J提供程序时,它会将该提供程序强加给最终用户,从而否定SLF4J的目的。
类路径包含SLF4J绑定,目标为SLF4J-api版本1.7.x或更早版本为Jigsaw(Java 9)、slf4j-api 2.0.x版及更高版本的出现做计划时,请使用ServiceLoader机制。SLF4J的早期版本依赖于静态绑定机制,而SLF4J-api 2.0.x版本不再采用该机制。
如果SLF4J没有找到以SLF4J 2.0.x为目标的提供程序,而是找到了以SLF4J.1.7或更早版本为目标的绑定,它将列出它找到的绑定,但在其他情况下将忽略它们。
这可以通过在类路径上放置一个SLF4J提供程序来解决,这些提供程序包括logback版本1.3.x及更高版本,以及SLF4J-reload4j、SLF4J-jdk14、SLF4J simple版本2.0.0或更高版本中的一个。
3. 在右侧查看自己引入的包,然后exclusions排除对应的包
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
基于SpringBoot和PostGIS的某国基地可视化实战
本文以Java开发语言为例,使用SpringBoot框架来进行后台开发,详细讲解如何使用Leaflet对PostGIS的全球基地信息进行Web可视化,最后分享Web可视化结果,感兴趣的朋友跟随小编一起看看吧2024-08-08
最新评论