java.lang.NoSuchFieldError 和 NoSuchMethodError

java.lang.NoSuchFieldError

java.lang.NoSuchMethodError

这个错偶尔会遇到,遇到会觉得很莫名其妙,使用Maven的过程中,可能更容易出现。

这个错出现只有一种情况。

你编译和运行使用的不是相同的jar包

运行时的jar包没有包含该字段或方法

所以你IDE中没有任何错误,但是运行就出错。

为什么会这样?

可能有下面两种情况:

  • 你项目中有同一个jar包的不同版本,因此编译和运行时使用了不同的jar包。

  • 你用的maven,项目中的依赖由于使用了不同版本的包,最后打包的时候使用的不是你需要的版本,所以也会出错。

如何解决

知道上面原因后解决起来也容易。

第一种就是检查jar包是否有重复的,只留一个你需要的版本。

第二种Maven的稍微复杂,因为需要找依赖,可能会有依赖的依赖,如果你使用IDEA,你可以右键生成依赖图,使用Ctrl+F搜索包的名字,然后判断屏蔽那些依赖。如果你用的Eclipse,依赖视图可能不如IDEA方便,说不定就得一个个找。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

isea533

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

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

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

打赏作者

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

抵扣说明:

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

余额充值