我正在尝试编译一个开源库,并且遇到以下问题。当我保留两个库,slf4j-jcl-1.6.0.jar和slf4j-api-1.6.0.jar时,eclipse编译器会给我以下错误消息:
SLF4J:类路径包含多个SLF4J绑定。 SLF4J:在[jar:file:/home/chengs6/mahout/mahout-distribution-0.5/mahout-examples-0.5-job.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/chengs6/mahout/mahout-distribution-0.5/lib/slf4j-jcl-1.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定
如果我删除这两个库,那么编译器会给我以下错误消息:
2011年6月15日下午2:51:12 org.slf4j.impl.JCLLoggerAdapter错误
如何解决这个问题?感谢。
答案 0 :(得分:2)
SLF4J只要求您在类路径中拥有slf4j-api-1.6.0.jar
和一个记录器实现。这就是manual所说的:
请注意SLF4J启用您的 库/应用意味着 只增加一个强制性 依赖,即
slf4j-api-1.6.1.jar
。
在你的情况下,我猜你有multiple logger implementations in your classpath。在我看来,mahout-examples-0.5-job.jar
已经包含了一些SLF4J实现类。