Java 如何修复intelliJ中的NoClassDefFoundError:org.slf4j.LoggerFactory(但eclipse工作正常)

Java 如何修复intelliJ中的NoClassDefFoundError:org.slf4j.LoggerFactory(但eclipse工作正常),java,eclipse,intellij-idea,slf4j,Java,Eclipse,Intellij Idea,Slf4j,Eclipse可以很好地运行我的代码(右键单击->运行),但是当我尝试在intellij中运行相同的项目和main方法时,我得到了这个错误。有没有办法查看eclipse从何处获取依赖项,并在Intellij中添加这些依赖项 我已尝试将API从提供切换到运行时。。。。然后我遇到了另一个问题-无法找到正确的LoggerFactory类型。。然而eclipse发现这种依赖性很好 这些在我的pom层次结构中: <dependency> <groupId>org.apache.

Eclipse可以很好地运行我的代码(右键单击->运行),但是当我尝试在intellij中运行相同的项目和main方法时,我得到了这个错误。有没有办法查看eclipse从何处获取依赖项,并在Intellij中添加这些依赖项

我已尝试将API从提供切换到运行时。。。。然后我遇到了另一个问题-无法找到正确的LoggerFactory类型。。然而eclipse发现这种依赖性很好

这些在我的pom层次结构中:

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>2.11.1</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
</dependency>

    Exception in thread "main" java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
at com.railroad.messaging.consoleapp.PumpEmpMessagetoQpid.<clinit>(PumpEmpMessagetoQpid.java:16)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:609)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:926)
at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:854)
... 1 more

org.apache.logging.log4j
log4j-slf4j-impl
2.11.1
org.slf4j
slf4j api
线程“main”java.lang.NoClassDefFoundError中出现异常:org.slf4j.LoggerFactory
在com.railway.messaging.consoleapp.PumpEmpMessagetoQpid.(PumpEmpMessagetoQpid.java:16)
原因:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory
位于java.net.URLClassLoader.findClass(URLClassLoader.java:609)
位于java.lang.ClassLoader.loadClassHelper(ClassLoader.java:926)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:871)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:854)
... 还有一个

检查您的父项目pom.xml。可能您需要删除slf4j依赖项块(在父项目中)中“提供”的范围


org.slf4j

idea中有一个刷新/重建maven项目的选项。您将在右侧找到一个选项卡,它是maven。点击maven,你会发现一个刷新图标。只需点击它,这并不能解决问题。我认为IDE需要在运行时定位记录器实现。。。
<dependency>
    <groupId>org.slf4j</groupId
    <artifactId>slf4j-api</artifactId>
    <version>${slf4.version}</version>        

    <!-- DELETE THIS ROW: -->
    <scope>provided</scope>
</dependency>