当前位置: 首页 > 编程笔记 >

解决 java.lang.NoSuchMethodError的错误

高茂
2023-03-14
本文向大家介绍解决 java.lang.NoSuchMethodError的错误,包括了解决 java.lang.NoSuchMethodError的错误的使用技巧和注意事项,需要的朋友参考一下

解决 java.lang.NoSuchMethodError的错误

1 原因

在项目依赖比较复杂或者 Java 运行的环境有问题时,或者同一类型的 jar 包有不同版本存在,都可能触发该错误。本质上说是 JVM 找不到某个类的特定方法,也就是说 JVM 加载了错误版本的类。说白了,就是 JVM 找不到真正想要调用的方法啦!出现该错误的情形主要有以下两个种:

  • 导入了不匹配的包版本;
  • 开发环境和运行环境不一致。

2 解决方法

查看“External Libraries”,看报错的方法到底存不存在,如果不存在,说明这个包一定有问题啦,更新包就可以啦;如果存在,说明包已经引入成功,但集成开发环境有可能没有同步到,可以尝试强制更新的方法。此外,可以查看一下开发环境和运行环境是否一致,如果不一致,修改。

3 特别提醒

如果是 maven 工程,在我们更新包的过程中,主要有两种方法:

  1. 到本地 maven 仓库中,把对应的包删掉,然后在“maven project”中点击刷新;
  2. 直接在“maven project”的命令行中输入命令强制更新。

其中,方法 1 不太靠谱,有可能操作不成功,原因未知,强烈推荐用方法 2,没别的,靠谱啊!

强制更新maven命令:clean install -Dmaven.test.skip=true -U

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap,包括了解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmut

  • 问题内容: 我使用Jersey作为Rest Web服务和Hibernate实体管理器来持久化JPA模型。我正在使用Tomcat 8作为容器。 这是persistence.xml文件的内容: 我的Rest呼叫就这么简单: 这是我的web.xml文件 但这给了我这个错误: 我无法弄清楚问题出在哪里!有什么帮助吗? 根据建议,这是mvn依赖项:tree日志: 问题答案: 根据@Ravindran Kan

  • 我有一个可以在Eclipse中正确运行的项目,但是运行独立的jar会在运行时为类提供java.lang.NoSuchMethodError。 我解压缩了jar文件,可以在jar中的一个库文件中看到类文件,并且我确实看到了类中定义的方法。异常不是找不到类,而是找不到类中的方法。 在internet上找不到任何解决问题的有用信息。

  • 问题内容: 我不熟悉使用Java发送邮件的功能。发送电子邮件重设密码时出现错误。希望你能给我一个解决方案。 下面是我的代码: 引发以下错误: 调试:setDebug:JavaMail版本1.4.1ea-SNAPSHOT javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]

  • 我不熟悉这个功能在Java发送邮件。我收到一个错误时发送电子邮件重置密码。希望你能给我一个解决办法。 下面是我的代码: 引发以下错误: debug:setdebug:JavaMail版本1.4.1ea-snapshot 调试SMTP:useEhlo为true,useAuth为true 调试SMTP:正在尝试连接到主机“smtp.gmail.com”,端口465,isSSL false 220 mx

  • 现在我正在尝试从git运行克隆应用程序https://github.com/frinder/frinder-app但问题是该应用程序制作了很长时间,所以应该改变bulid.gradle 但是当我尝试相同的同步实现“com.android.支持:动画矢量可绘制:28.0.0”,但如果我删除它,请继续向我显示错误28.0.0它显示如下 但我不知道是什么造成了不完全相同的版本 这是应用程序build.g