IDEA运行redis多线程访问报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

在IDEA中运行涉及redis的多线程程序时出现异常:Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory。解决方法是下载slf4j-api和slf4j-simple的JAR包,确保版本一致,并将其添加到项目的外部库中。MyEclipse环境下运行同样代码不报错,可能因为IDEA缺少这两个依赖。

错误样式:

解决方案:

下载两个JAR包即可,同样的代码我在MyEclipse中运行就不报错,可能是IDEA缺少这两个JAR包吧,而ME本身自带了

托管下载地址:Central Repository: org/slf4j (maven.org)

懒得自己下的点击我分享的网盘连接下载

提取码:2021

下载 slf4j-apislf4j-simple 即可解决

点进去以后选择版本,然后点击版本进入,找到.jar结尾的下载即可,api 和 simple版本要统一

步骤演示(只演示一个):

这边我个人用的1.7.7

### Java程序中因找不到Jedis类而引发的`NoClassDefFoundError`解决方案 当遇到`java.lang.NoClassDefFoundError: redis/clients/jedis/JedisClientConfig`异常时,这通常意味着项目依赖项配置存在问题。具体来说,可能是由于Spring Boot与Redis客户端库之间的版本不匹配所引起的。 #### 版本兼容性调整 为了确保不同组件间的良好协作,应当仔细核对并适配各部分使用的版本号: - **确认Spring Data Redis和Jedis版本的一致性**:根据已知的信息,spring-data-redis的不同版本对于jedis有着特定的要求[^5]。例如,如果正在使用的是spring-data-redis 2.1.x,则应配套选用jedis 2.9.x;若是采用更高版本如2.2.x,则建议搭配最新的3.x系列 jedis。 ```xml <dependencies> <!-- 使用与当前Spring Boot相匹配的数据访问层 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>${compatible.spring.data.redis.version}</version> </dependency> <!-- 明确指定Jedis版本以避免潜在冲突 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${specific.jedis.version}</version> </dependency> </dependencies> ``` #### 清理构建缓存 有时即使更新了POM文件中的依赖声明,仍然会遭遇旧版jar残留的问题。因此,在修改完依赖之后执行一次完整的清理操作是非常必要的: ```shell mvn clean install ``` 此命令能够彻底清除本地仓库里的过期资源,并重新下载所需的最新包件。 #### 验证环境变量设置 还需检查项目的运行环境中是否存在影响classpath加载的因素。比如某些IDE可能会保留历史记录或是自定义了一些额外路径,这些都可能导致实际编译时不按预期读取到正确的class文件。 通过以上措施应该能有效解决由`NoClassDefFoundError`带来的困扰。当然,具体情况可能还会有所不同,务必结合实际情况灵活处理。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾欲乘风归去,又恐琼楼玉宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值