NoClassDefFoundError: org/slf4j/LoggerFactory和NoClassDefFoundError: org/apache/log4j/LogManager解决方法

1.如果运行程序出现错误:“Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory”,这是因为项目缺少slf4j-api.jar和slf4j-log4j12.jar这两个jar包导致的错误。

2.如果运行程序出现错误:“java.lang.NoClassDefFoundError: org/apache/log4j/LogManager”,这是因为项目缺少log4j.jar这个jar包

3.错误:“Exception in thread “main” java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map”,这是因为jar包版本冲突造成的。

slf4j-log4j12.jar版本信息:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: ceki
Build-Jdk: 1.5.0_06
Bundle-Description: The slf4j log4j-12 binding
Bundle-Version: 1.3.1
Implementation-Version: 1.4.2
Implementation-Title: slf4j-log4j12
Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.log4j12
Bundle-Name: slf4j-log4j12
Bundle-Vendor: SLF4J.ORG
Export-Package: org.slf4j.impl;version=1.3.1
Import-Package: org.slf4j;version="[1.3,1.4)", org.slf4j.spi;version="
 [1.3,1.4)", org.slf4j.helpers;version="[1.3,1.4)", org.apache.log4j

slf4j-api.jar版本信息:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: ceki
Build-Jdk: 1.5.0_06
Bundle-Description: The slf4j API
Bundle-Version: 1.3.1
Implementation-Version: 1.4.2
Implementation-Title: slf4j-api
Bundle-ManifestVersion: 2
Bundle-SymbolicName: slf4j.api
Bundle-Name: slf4j-api
Bundle-Vendor: SLF4J.ORG
Export-Package: org.slf4j;version=1.3.1, org.slf4j.spi;version=1.3.1, 
 org.slf4j.helpers;version=1.3.1
Import-Package: org.slf4j.impl;version="[1.3,1.4)"

log4j.jar版本信息:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.3.1_18-b01 (Sun Microsystems Inc.)

Name: org/apache/log4j/
Implementation-Title: log4j
Implementation-Version: 1.2.14
Implementation-Vendor: "Apache Software Foundation"

后来将log4j.jar版本从上面的1.2.14换到1.2.11

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.4
Created-By: 1.4.2_06-b03 (Sun Microsystems Inc.)

Name: org/apache/log4j/
Implementation-Title: log4j
Implementation-Version: 1.2.11
Implementation-Vendor: "Apache Software Foundation"

就不再出现“Exception in thread “main” java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map”错误了。

4.ActiveMQ错误:Wire format negociation timeout: peer did not send his wire format.

官方解释:http://activemq.apache.org/javaxjmsjmsexception-wire-format-negociation-timeout-peer-did-not-send-his-wire-format.html

我出现这样的错误主要是因为ActiveMQ与slf4j的版本有冲突,我原先使用的是以前一种用的slf4j-1.4。后来看apache-activemq-5.5.1\lib目录下有slf4j-api-1.5.11.jar、slf4j-log4j12-1.5.11.jar和log4j-1.2.14.jar。我想这几个jar应该是和ActiveMQ匹配的,就使用了这三个jar,最终错误解决。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "java.lang.noclassdeffounderror: org/slf4j/loggerfactory" 意味着在程序运行时找不到类 "org.slf4j.loggerfactory"。这通常是由于缺少依赖包或者依赖包版本不正确导致的。建议检查项目的依赖配置,确保所需的包都已正确安装。 ### 回答2: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory意味着在运行Java程序时,找不到所需的slf4j库中的LoggerFactory类。 slf4j是一个Java的日志框架,提供了简单的日志记录接口,而LoggerFactoryslf4j框架中的一个重要类。这个错误通常发生在以下几种情况下: 1. 缺少slf4j库:这可能是由于缺少所需的slf4j库导致的。解决办法是下载并在项目的构建路径中添加所需的slf4j库。 2. 版本冲突:可能存在多个版本的slf4j库在项目中导致冲突。在这种情况下,需要检查项目中是否存在多个版本的slf4j库,并确保只使用一个版本。可以通过更新或删除冲突的库来解决这个问题。 3. 类路径错误:这个错误也可能是由于错误的类路径导致的。请检查类路径设置是否正确,并确保正确地引用了所需的slf4j库。 4. 编译错误:如果使用了某个包含LoggerFactory的库,但该库不可用或存在编译错误,那么也可能引发这个错误。在这种情况下,需要检查所使用的库是否正确安装和配置。 综上所述,java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory错误是由于无法找到所需的slf4j库中的LoggerFactory类所导致的。解决这个错误的方法包括添加所需的库、解决版本冲突、检查类路径设置和确认所使用的库是否正确安装。 ### 回答3: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 是 Java 中的一个错误,意味着找不到 org.slf4j.LoggerFactory 这个类。 这个错误通常是由于项目未正确配置所需的依赖导致的。org.slf4j.LoggerFactoryslf4j(Simple Logging Facade for Java)日志框架的一个关键类,被用来获取日志记录器。 要解决这个错误,需要检查项目的依赖配置。首先,确保项目中已经引入了 slf4j 的相关库,包括 slf4j-api 和相应的实现库,比如 logback 或者 log4j。可以通过在项目的构建工具(如 Maven、Gradle)的配置文件中添加正确的依赖来解决问题。 如果依赖正确配置并引入,但仍然出现该错误,可能是因为依赖冲突。在项目中可能同时引入了多个不同版本的 slf4j 库,导致冲突。解决这个问题可以通过排查冲突的依赖,并将它们的版本统一。 总结而言,java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 错误的原因是缺少 slf4j 的相关依赖或者存在依赖冲突。通过正确配置依赖并解决冲突,可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值