关于Exception in thread “main“ java.lang.NoSuchMethodError: 报错的解决方法

作者在项目测试中遇到SpringFactoriesLoader方法不存在的问题,追踪发现是由于不同模块间SpringBoot版本不一致引起的。通过依赖分析和版本设置,解决了这个问题并学习了IDEA工具的使用。
摘要由CSDN通过智能技术生成

今天在进行项目框架搭建完成,启动测试的时候出现了这样的问题:

根据报错信息应该是spring框架中SpringFactoriesLoader这个类中的forDefaultResourceLocation方法不存在。

于是在依赖项中排查相应的maven库

分析springframework,发现在springframework:spring-core中是有这个方法的,

但是有两个不同版本的包

在5.323的版本中是没有的

这下破案了,应该是依赖时使用了错误的包,有的包使用的是5.323的版本,而有的使用的是6.04的版本,怎么解决呢?

使用了@Anakkijava.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationAwareOrderComparator.sort-CSDN博客这篇文章中的方法查看了依赖结构

emmmmm,全部依赖的都是 6.0.4和6.1.0,这就奇怪了,为什么会爆出这样的错误呢,也没有看到什么错误的依赖

直接不作不休了,上maven文件夹把5.23的jar包删掉试试,如果报错就说明项目引用的实际上还是5.23

IDEA,启动!

有趣的事情发生了,还真是这个包的问题,可是我查了maven的依赖中并没有这个包啊?有没有大佬给点思路?

啊啊啊啊啊想起来了,我这是个多模块项目,刚才光盯着主模块看了,没想到可能是子模块的依赖项目出问题

我们直接对子模块进行依赖关系分析

还真是这个玩意引用了5.3.23的包,怎么个事,怎么别的项目都是6.04就它这么特殊?

原来是我创建子模块的时候手残了没有把spring boot的版本设置成跟主模块相同的3.02啊,那没事了。

重新设置好版本,运行maven clean,重新maven install

Yes,这回没有那个5.3.23了,WebApplition,启动!

啊这,问题不大问题不大,原来是我没设置数据库的url,先把这个在pom文件中注释掉……

成功运行好耶!

总结一下:浪费了好几个小时,最终发现是自己太粗心emmmmm,好在在解决问题的过程中学到了很多IDEA的使用方法和依赖问题的解决方案,所以说还算不亏?(但是这粗心的毛病什么时候能改改啊)

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 异常在主线程中:"main" java.lang.nosuchmethoderror: 这个错误通常是因为代码中调用了一个不存在的方法。可能是因为方法名拼写错误、方法参数不匹配或者方法已经被删除或重命名。要解决这个问题,需要检查代码中调用的方法是否存在,确保方法名和参数正确。如果方法确实不存在,需要修改代码或者添加缺少的方法。 ### 回答2: 这个错误通常会在Java编程中出现,它指的是没有找到指定的方法。在程序调用一个类中的方法时,如果该方法的名称或参数与实际定义的方法不一致,则会出现此错误。如果在编译时错误,则会提示编译器错误消息,而运行时错误通常会显示堆栈跟踪信息,其中包含错误的类、方法和行号等信息。 造成这个错误的原因比较多,其中包括: 1.类文件版本不匹配。这种情况下,程序试图调用某个类中不存在的方法,因为该类的版本与应用程序代码不兼容。 2.类的字节码被戏弄了。这可能是因为class文件在运行时损坏或因为程序中的第三方库已经更改了类的方法,导致没有找到所需方法。 3.引用库文件错误。如果类引用了一个不正确的库文件,则程序将无法找到所需的方法。 4.方法名称错误。如果程序中方法名称错误,则程序将无法找到所请求的方法。 要解决此错误,需要确定引用正确版本的类文件、检查程序中是否存在错误的方法名称、检查库文件是否引用正确,或者尝试更新第三方库,或者检查文件缓存。因为这种错误通常没有明显的错误消息,因此需要仔细检查代码,找出具体的错误原因并进行修改。 ### 回答3: “exception in thread "main" java.lang.nosuchmethoderror”这个错误是Java编程中常见的错误之一,意思是在程序执行的过程中找不到指定的方法。 这个错误通常出现的原因是在代码中调用了不存在的方法方法参数不匹配,尤其是在调用第三方库或框架中的方法时容易出现这个错误。还有可能是类路径问题,即找不到需要的类或库。 解决这个问题的方法有以下几种: 1.检查程序中调用的方法名是否正确,确保方法签名(方法的名称、参数、返回值)和实际使用一致; 2.检查依赖库的版本信息是否正确,确保使用的依赖库中包含程序中调用的方法; 3.检查类路径,确保程序能正确地找到需要的类或库文件; 4.可能是因为缺少一些依赖,需要手动添加缺失的依赖库; 5.可以尝试重新编译和构建程序,以更新库文件和依赖。 总之,这个错误的出现需要我们仔细检查代码,确认是否有语法错误或者方法调用不正确的问题。如果确认代码没有问题,可以考虑检查项目依赖、类路径等环境问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值