【问题标题】:Intellij error while running Jar -> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" [duplicate]运行 Jar -> SLF4J 时出现 Intellij 错误:无法加载类“org.slf4j.impl.StaticLoggerBinder”[重复]
【发布时间】:2021-09-11 20:07:59
【问题描述】:

我在 Windows 上使用带有 Java 16 和 Maven 3.6.3(与 Intellj 捆绑)的 Intellij 2021.1.2 社区版。

当我尝试运行我的 jar 时,这是完整的错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我发现了很多关于这个错误的问题,但没有一个符合我的具体情况,所以如果这是重复的,请指出正确的解决方案。

我的项目昨天运行良好,自昨天以来我没有对任何依赖项进行任何更改,所以我对问题可能是什么感到困惑。也就是说,我正在尝试运行一个使用依赖 Jedis 的 jar。我在我的 pom 中将其列为:

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.6.1</version>
</dependency>

似乎 slf4j 是 Jedis 的依赖项,正如我在此处的 maven 窗口中看到的那样:

在 Intellij 中,如果我转到 Project Structure -> Modules,则 slf4j 设置为编译。如果我通过库文件路径 (C:\Users\MyUsername.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30-sources.jar) 进入 slf4j 源 jar Project Structure -> Libraries 并打开jar,我可以看到类文件“org.slf4j.impl.StaticLoggerBinder”确实存在。该依赖也仅用于 Jedis,因此似乎没有依赖冲突或任何东西。

在 Maven 中,我使用“Build Artifact”功能构建 jar,将库编译成一个 jar。将它们编译为单独的 jar 会产生相同的错误。

什么给了?对此问题的任何见解将不胜感激。

【问题讨论】:

标签: java maven intellij-idea slf4j jedis


【解决方案1】:

我遇到了这个问题。为了解决这个问题,我将 slf4j 依赖项的范围从 Compile 更改为“Test”,并转到 IntelliJ 中的 File -> Project Structure -> Modules -> Dependencies 选项卡。它解决了问题

【讨论】:

  • 此方法不起作用,因为 Jedis 无法找到它的依赖项。 Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at redis.clients.jedis.HostAndPort.&lt;clinit&gt;(HostAndPort.java:12)
猜你喜欢
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 2020-03-20
  • 2011-11-17
相关资源
最近更新 更多