首页 文章

无法加载类“org.slf4j.impl.StaticLoggerBinder” - 哪个类路径?

提问于
浏览
19

我的 pom.xml 只包含一个对SLF4J的引用:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.10</version>
    </dependency>

我收到此错误:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder” . SLF4J:默认为无操作(NOP) Logger 实现SLF4J:有关更多详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder .

我检查了那个URL,实际上它提供了一个解决方案:“放置一个(只有一个)slf4j-nop.jar,slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar on the class path 应该解决这个问题 . “

我的问题是: which classpath?

  • 系统的%CLASSPATH%? (我没有!我需要专门为此创建它)

  • Eclipse的项目 .classpath ? (我想我试过这个,但没有帮助)

  • 其他?

我在SO上找到了关于here的相当a few帖子,但是他们都引用了相同的答案:“放置在 the class path 上” .

Which classpath?

1 回答

  • 14

    首先,为了添加SLF4J,你应该在你的pom.xml中放置 ONE 和这些依赖项的 ONE . 这取决于您选择使用的实施方式 . 您在pom.xml中添加的每个依赖项都会自动添加到类路径中 . 只要您使用Eclipse,就不需要修改系统的%CLASSPATH%?

    <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version></version>
    </dependency>
    
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version></version>
       <scope>compile</scope>
    </dependency>
    
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version></version>
       <scope>compile</scope>
    </dependency>
    
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-jdk14</artifactId>
       <version></version>
       <scope>compile</scope>
    </dependency>
    

    最后但并非最不重要的是,您将收到错误SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder” .

    当使用捆绑的maven版本(m2e)时,Eclipse Juno和Indigo不会抑制消息SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder” . 此行为存在于m2e版本1.1.0.20120530-0009及之后 .

    虽然,这表示为错误,您的日志将正常保存 . 在修复此错误之前,突出显示的错误仍然存在 . 更多关于m2e support site的内容 .

    为了抑制此消息,当前可用的解决方案是使用外部maven版本而不是捆绑的Eclipse版本 . 您可以在下面的问题中找到有关此错误的此解决方案和更多详细信息 .

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". error

相关问题