两个jar包含相同类怎么解决?

 我来答
华源网络
2022-07-01 · TA获得超过5593个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:147万
展开全部

问题背景:我在工程中引入了smiley-http-proxy-servletjar包

然后运行报错 java..NoSuchMethodError: org.apache.http.util.EntityUtils.consume(Lorg/apache/http/HttpEntity;)V

给我的第一感觉就是一个jar冲突的问题,引入了这个smiley-http-proxy-servlet依赖之后自动隐式引入了httpcore。

如下在idae中搜索类全限定名org.apache.http.util.EntityUtils。发现有两个jar中都包含了这个。

且二者的version.properties中版本不通。
httpcore-4.4.8.jar 是4.4.8版本;

GMServiceClient-1.0.jar 的httpcore版本是4.0;

因为java运行时去找的版本是httpcore-4.0.jar,而EntityUtils.consume方法在4.0版本中不存在的。因此报错 java..NoSuchMethodError: org.apache.http.util.EntityUtils.consume(Lorg/apache/http/HttpEntity;)V

解决方法
方法1、将smiley-http-proxy-servlet依赖移动到GMServiceClient-1.0.jar依赖之前,这样的话运行时就会去找httpcore-4.4.8.jar 了

方法2、自己创建所有冲突的类

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式