jar包冲突那些事,编译器不报错,启动报错
来源:互联网 发布:矩阵分解 als 编辑:程序博客网 时间:2024/05/01 07:03
上周启动项目遇到了错误一,这周启动遇到错误二。
在分布式系统中,那么多复杂繁琐的jar依赖,遇到jar包冲突是常有的事。
假如,你也经常遇到这样的情况——明明编译的时候是好好的,可就是启动的时候不成功,明明jar包是有的,可就是报找不到类,或找不到方法?
为了解决这样的困扰,遂写下此文,顺便聊一聊。
错误一:java.lang.NoClassDefFoundError:redis/clients/jedis/GeoUnit
错误二:java.lang.NoSuchMethodError: org.springframework.http.HttpMethod.matches
问题再述:明明jar包还在,却报找不到方法or类 ?
上面就根据错误一和错误二,分析下这些天遇到这两个典型的由于jar包冲突导致启动报错的问题。
错误一:java.lang.NoClassDefFoundError:redis/clients/jedis/GeoUnit
启动时报如上错误,乍一看,看到NoClass,还以为是缺包呢,或者包内容更改了,但是maven打包时用了旧包。可是idea或者eclipse编译的时候又没报错,况且这是jedis的类,没人会闲得无聊去修改jedis的内容吧。
这时候就在idea或者eclipse编辑框,搜索报错的类,点击去,查看类所在的包,记录下包版本号,注意看左上角。
得知ide编辑器使用的类所在版本包之后,打开启动报错的war包,如果是用spring-boot打的则是jar包,把包解开,查看lib目录下,都有哪些jar包,找到jedis包,猛然发现,jedis包被打包的居然是2.7.3版本的。再把2.7.3用反编译工具查看,jedis包2.7.3版本里面确实没有该类,而2.8.0版本的jedis jar包中,该类是存在的。问题找到了,利用maven排出jar包功能,把低版本的jedis排出,同时显示制定jedis高版本jar包。问题解决。
错误二:java.lang.NoSuchMethodError: org.springframework.http.HttpMethod.matches
用同样的方法,发现启动报错的包里,lib目录下,其他spring 包都是4.2.3版本,唯独spring-webmvc这个包是4.2.4版本,查看源码,HttpMethod这个类在spring-web这个jar包下,从maven下载4.2.3版本和4.2.4版本的spring-web包,利用反编译查看源码,发现,4.2.3版本里的HttpMethod确实没有matches方法,而4.2.4版本包里却有。问题找到了,之所以报错是因为4.2.4版本的spring-webmvc这个jar包用到了matches方法。所以把版本更改一致就解决了。
ClassNotFoundException
0 0
- jar包冲突那些事,编译器不报错,启动报错
- tomcat启动报错jar包冲突解决方法
- BeanCreationException报错启动不起来(jar包冲突)
- SpingMVC项目导入jar包运行报错,编译不报错的解决方式
- maven jar包冲突常见报错及解决方法
- java web的jar包冲突导致NoSuchMethodError报错
- 报错问题 关于在框架中 jar包冲突
- ssm整合maven项目启动报错、架包冲突
- 项目不报错,启动报错class not found
- SpringBoot报错(七)日常报错jar包冲突
- hive启动报错,找不到spark的jar包们
- Swift等号误写成双等号,编译器不报错,运行报EXC_BAD错误
- totalFrames属性写错编译器不报错
- g++编译器为什么不报错呢?
- tomcate启动时jar包冲突。wlfullClient.jar 冲突
- namenode无法启动,不报错
- 在android studio中添加.jar文件后,rebuild不报错,执行报错的解决
- Jrun4 - 应用无法启动-jar包冲突
- 第十二周 项目3 -图遍历算法实现
- java最基本实现文件上传的过程
- Eclipse启动Tomcat服务器成功,浏览器访问出现404
- Volley 图片缩放逻辑
- new(std::nothrow)
- jar包冲突那些事,编译器不报错,启动报错
- atoi() 函数
- Android实验之实现一个生日备忘簿
- 【iOS沉思录】深思Objective-C中的property属性
- Python缩进问题
- 初步学习opencv的几个程序示例 学习笔记
- leetcode 405. Convert a Number to Hexadecimal
- 从头开始学习yii2---4.对于布局文件的理解
- hdu3853(概率与期望dp入门)