【问题标题】:I have created a Maven project in eclipse [duplicate]我在eclipse中创建了一个Maven项目[重复]
【发布时间】:2018-03-15 13:57:29
【问题描述】:

我有以下 jar 文件:sl4j-log4j12-1.7.25 但在执行时出现以下错误: SLF4J:您的 slf4j 绑定请求的版本 1.6.99 与 [1.5.5, 1.5.6] 不兼容 SLF4J:详情请见here

线程“主”java.lang.NoSuchMethodError 中的异常: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple; 在 org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:346)

【问题讨论】:

    标签: java eclipse maven


    【解决方案1】:

    确保您的 slf4j-api 版本与您的 slf4j-log 版本相同。

    您的答案在您提供的链接中!

    slf4j-api 版本与绑定的不匹配

    SLF4J 绑定指定一个工件,例如 slf4j-jdk14.jar 或 slf4j-> > log4j12.jar,用于将 slf4j 绑定到底层日志框架,例如 java.util.logging 和 log4j。 混合混合不同版本的 slf4j-api.jar 和 SLF4J 绑定可能会导致问题。例如,如果您使用的是 slf4j-api-1.8.0-alpha2.jar,那么您也应该使用 slf4j-simple-1.8.0-alpha2.jar,使用 slf4j-simple-1.5.5.jar 将不起作用。

    注意从客户端的角度来看,所有版本的 slf4j-api 都是兼容的。使用 slf4j-api-N.jar 编译的客户端代码在任何 N 和 M 的 slf4j-api-M.jar 中都可以正常运行。您只需确保绑定的版本与 slf4j-api.jar 的版本匹配。您不必担心项目中给定依赖项使用的 slf4j-api.jar 版本。您始终可以使用任何版本的 slf4j-api.jar,只要 slf4j-api.jar 的版本及其绑定匹配,就可以了。 在初始化时,如果 SLF4J 怀疑可能存在 api vs. binding 版本不匹配的问题,它会发出关于怀疑不匹配的警告。

    【讨论】:

    • 嗨,谢谢.. 我添加了与 slf4j-log 版本相同的 slf4j-api 版本。但是在执行时出现以下错误:
    • 嗨,谢谢.. 我添加了与 slf4j-log 版本相同的 slf4j-api 版本。但我得到了以下错误:SLF4J:类路径包含多个 SLF4J 绑定。 SLF4J:在 [jar:file:/C:/Users/tcsalku/Downloads/cmdChatbot/cmdChatbot/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]/impl/ 中找到绑定StaticLoggerBinder.class] SLF4J:请参阅slf4j.org/codes.html#multiple_bindings 以获得解释。 SLF4J:实际绑定的类型为 [org.slf4j.impl.Log4jLoggerFactory] ​​log4j:WARN 找不到记录器 (org.alicebot.ab.Bot) 的附加程序。
    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 2013-03-08
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多