运行JFinal出现如下报错:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/E:/myeclipse/WeiXinFirst/WebRoot/WEB-INF/lib/log-slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/myeclipse/WeiXinFirst/WebRoot/WEB-INF/lib/log-slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
出现这个错误的原因:
jar包冲突了,slf4j就是所谓的门面模式,提供了一个接口,自己不去实现,让其他日志jar包去实现这个接口。logback、log4j什么的,都有实现这个接口,但运行的时候,必须保证只能有一个接口实现类,如果有两个或以上,就抛上面那个异常了,有的时候是其他包里面引进了日志包,不是你自己引进的
在网上搜了很久,总结网上的一些办法:
NO1:将冲突的jar包删除,最直接的办法,步骤是:
在对应的项目上,右键--->属性(Properties)--->Java Build Path 然后选择Libraries 页签,然后会发现 slf4j与这个相关 的包会有重复,去掉一个
楼主没有找到有重复的jar包,所以寻找第二种
NO2:使用maven的用排除依赖法
没有使用Maven的可以查一下是不是jar包版本的问题
在有些低版本下,这个是一个内部bug
详情可以参考:http://www.slf4j.org/news.html
找到August 19th, 2011 - Release of SLF4J 1.6.2查看详情
换一下jar包就OK了
附上Jar包