gpt4 book ai didi

java - 从命令行 - java.lang.ClassNotFoundException : org. slf4j.LoggerFactory

转载 作者:行者123 更新时间:2023-11-30 06:10:58 25 4
gpt4 key购买 nike

好的。我知道还有其他类似的问题,这不是 slf4j 第一次惹我生气。但是,我在环境变量中查看了我的 PATH,下面是我的 PATH 中包含的两个 slf4j jar 文件以及我的项目依赖项。

C:\Users\pdl\.m2\repository\org\slf4j\slf4j-api\1.7.13\slf4j-api-1.7.13.jar
C:\Users\pdl\.m2\repository\org\slf4j\slf4j-simple\1.7.13\slf4j-simple-1.7.13.jar

这是我的 pom 文件中的内容:

    <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-ext</artifactId>
<version>1.7.13</version>
</dependency>

我们正在运行的其他应用程序在 IDE 中包含 slf4j jar 依赖项,但它们未在 pom 文件中列出。我很困惑该把我看不清的东西放在哪里。

这是应用程序依赖项的样子:

Dependencies Screen Capture

我可以从 IDE (Netbeans) 运行该应用程序,但是当我尝试从命令提示符运行时出现以下错误。

C:\Users\pdl\Projects\WeatherTestDrive>java -cp WeatherApp.jar;WeatherOpenWeatherMap.jar;WeatherClient.jar com.a2i.weatherclient.Client
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.a2i.weatherclient.Client.<clinit>(Client.java:22)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

在我的 VM 类路径中添加 slf4j,我仍然收到错误。

C:\Users\pdl\Projects\WeatherTestDrive>java -cp WeatherApp.jar;WeatherOpenWeatherMap.jar;WeatherClient.jar;C:\Users\pdl\.m2\repository\org\slf4j\slf4j-api\1.7.13\slf4j-api-1.7.13.jar;C:\Users\pdl\.m2\repository\org\slf4j\slf4j-simple\1.7.13\slf4j-simple-1.7.13.jar com.a2i.weatherclient.Client
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.a2i.weatherclient.Client.<clinit>(Client.java:22)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

有人可以帮我弄清楚我做错了什么吗?

  1. 我应该将 slf4j-api 而不是 slf4j-exe 添加到我的依赖项中吗?还是别的什么?
  2. 我想无论我使用哪个,我都应该将它添加到我的 VM 类路径中。
  3. 它甚至需要在我的 pom 文件中吗?

---------------------------- 编辑 ------------ ----------------------

我创建了一个简单的 HelloWorld 应用程序来记录我的名字。一旦我将 Logger 添加到我的 Hello 类中,它就会以红色突出显示,因此我将 slf4j-simple 添加到我的依赖项中,slf4j-api 随之而来。但是当我打开 pom 文件时,只添加了 slf4j-simple:

    <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.13</version>
</dependency>

当我从 IDE 运行时,一切正常。但是当我从命令行运行时,我仍然得到错误:

C:\Users\pdl\Projects\HelloWorld\target>java -cp HelloWorld-1.0-SNAPSHOT.jar;C:\Users\pdl\.m2\repository\org\slf4j\slf4j-simple\1.7.13\slf4j-simple-1.7.13.jar com.a2i.helloworld.Hello
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.a2i.helloworld.Hello.<clinit>(Hello.java:17)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

最佳答案

您的 VM 类路径中的 slf4j 在哪里?尝试如下运行:

java -cp WeatherApp.jar;WeatherOpenWeatherMap.jar;WeatherClient.jar;C:\Users\pdl\.m2\repository\org\slf4j\slf4j-api\1.7.13\slf4j-api-1.7.13.jar;C:\Users\pdl\.m2\repository\org\slf4j\slf4j-simple\1.7.13\slf4j-simple-1.7.13.jar com.a2i.weatherclient.Client

您的运行时缺少 slf4j。希望对您有所帮助。

关于java - 从命令行 - java.lang.ClassNotFoundException : org. slf4j.LoggerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com