【问题标题】:conflicting files on the build path构建路径上的冲突文件
【发布时间】:2011-09-01 07:15:48
【问题描述】:

在 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 文件。点击“build path->Configure build path”,选择“Libraries”选项卡后,我找不到任何与home/user1/workspace/stable/lib/org.slf4j/slf4j-log4j12-1.6.1.jar匹配的库”

如果没有这个文件,为什么会导致冲突?

【问题讨论】:

    标签: java eclipse slf4j


    【解决方案1】:

    您的构建路径中的另一个 jar 可能包含一个 slf4j 版本,这与您期望的不同。另外,根据 SLF4J 文档重新排列您的内容,这应该是警告而不是错误。

    http://www.slf4j.org/codes.html

    请注意,SLF4J 发出的警告就是一个警告。 SLF4J 仍将与它在类路径中找到的第一个框架绑定。

    您应该能够将 SLF4J 放在库排序的顶部(配置构建路径、排序和导出选项卡),这样您就知道它正在使用您期望的版本。但是,我更愿意找到冲突所在并从那里着手。

    【讨论】:

    • Joseph,您能否详细说明“将 SLF4J 置于您的图书馆订购之上”是什么意思?
    • 我假设你有一个明确的 SLF4J jar,然后其他一些 jar 潜伏在那里导致了这个冲突。如果您转到“构建路径->配置构建路径”,然后单击“订购和导出”选项卡,将您拥有的 SLF4J jar 一直移动到顶部。如果您没有明确使用 SLF4J,那么听起来您导入的 2 个 jar 中每个都有 SLF4J jar(但版本不同)。我可能是错的,但这是我在类冲突中看到的问题。
    • 你发现问题了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2012-10-07
    • 2021-03-09
    相关资源
    最近更新 更多