构建路径上有冲突的文件

问题描述

| 在Eclipse下编译我的Java代码之后,出现以下错误消息:   SLF4J:类路径包含多个SLF4J绑定。   SLF4J:在[jar:file:/home/user1/workspace/MC/lib/slf4j-nop-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定   SLF4J:在[jar:file:/home/user1/workspace/stable/lib/org.slf4j/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定 在我看来,这两个slf4j * .jar文件引起了冲突。我试图从构建路径中删除一个jar文件。单击“构建路径->配置构建路径”后,选择“库”选项卡,我找不到与home / user1 / workspace / stable / lib / org.slf4j / slf4j-log4j12-1.6.1.jar匹配的任何库。 如果没有此文件,为什么会引起冲突?     

解决方法

您的构建路径上的另一个jar可能包含slf4j的版本,该版本与您期望的版本不同。根据SLF4J文档重新排列您的内容,这应该是警告,而不是错误。 http://www.slf4j.org/codes.html   请注意,SLF4J发出的警告仅是警告。 SLF4J仍将与它在类路径上找到的第一个框架绑定。 您应该能够将SLF4J放在库订购之上(配置构建路径,“订购和导出”选项卡),以便知道它正在使用您期望的版本。但是,我宁愿找到冲突在哪里,然后从那里开始。