我最近使用IDEA 创建了一个Maven项目,使用Jedis包操作Redis数据库,部署后用bat文件来启动时 错误内容如下:
Exception in thread "Thread-6" java.lang.NoClassDefFoundError: redis/clients/jedis/Jedis
at iRedisOperator.ConnRedis(iRedisOperator.java:20)
at iSiloInfoArchiver.run(iSiloInfoArchiver.java:60)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.Jedis
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)
... 3 more
依赖如下:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
打包的时候已经将jedis包导入到out中,截图如下:
不管怎么弄都还是上面那个错误。请各位专家帮忙看一下
在线等待,快速解决还有酬谢
你可以排查一下 redis IP 账户 密码 是否配置正确
建议更换redis包版本😏
https://blog.csdn.net/weixin_42629535/article/details/86485674
你看一下你的External Libraries 中有没有这个jar包。
看你pom文件中是否有导入spring-boot-starter-data-redis 这个jar,如果存在就会和你的jedis冲突
要么直接用spring的redis,要么在spring redis下加入
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
问题已解决,谢谢各位的帮忙
我的解决思路是:1、这个错误跟版本没有关系。用的还是Jedis3.3.0,也没有使用依赖spring-boot-starter-data-redis
2、经过各种验证,最终得到的结论是因为IDE在Rebuild Project时,自动生成的信息有2各问题:
第一个如下图:
再Rebuild Project
然后我在IDE平台下试运行,运行正常。
我又使用bat启动服务。此时正常。因此我断定 是因为自动生成的信息有遗漏导致。
做此恢复,希望能榜上跟我一样受困扰了几天的朋友。