如何解决JAR 抛出 slf4j 丢失错误,即使它在其他 VM 上运行良好
我有一个由我的一位同事准备的自定义 jar 文件,我需要在多个 VM 上运行该文件。它在一个 VM 中完成得很好,而在另一个 VM 中它会引发以下错误:
[limak@homesystem utilities]$ java -jar project1.jar parameter1
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.xxx.zz.yyy.aa.modules.bbbb.cccc.<clinit>(dddd.java:18)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 1 more
当我用谷歌搜索这个错误时,大多数来源都指向缺少 class 或 pom.xml 设置。但是,因为它在 VM A 中运行良好并在 VM B 中引发错误,所以我认为 VM B 设置有问题,而不是 jar 本身。两台机器都安装了相同的系统(Centos 7.8)、相同的 Java 版本(OpenJDK 1.8.0_252)以及相同的 slf4j 和 log4j 包,它们与 yum 一起安装(尽管我的理解是我不需要它们)。我在 VM B 中可能缺少什么?
pom.xml 的一部分:
<dependencies>
[...]
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>alf4j-log4j12</artifactId>
</dependency>
[...]
</dependencies>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。