我得到一个NoSuchMethodError错误时运行我的Java程序。出了什么问题,我该怎么解决?


当前回答

我在更改应用程序中的方法签名时遇到了类似的问题。 清理和重建我的项目解决了“NoSuchMethodError”。

其他回答

以上答案解释得很好。再补充一点 如果你正在使用eclipse,使用ctrl+shift+T并输入类的包结构(例如:gateway.smpp.PDUEventListener),你会找到它存在的所有jar /项目。从类路径中删除不必要的jar或将其添加到类路径中。现在它会选择正确的。

我也遇到过同样的问题。我改变了一个方法的返回类型,并运行了这个类的测试代码。这就是我面对这个NoSuchMethodError的时候。作为一种解决方案,在再次运行测试代码之前,我在整个存储库上运行了一次maven构建。这个问题在下一次测试运行中得到了解决。

如果您的文件名与包含main方法的类名不同,则可能会导致此错误。

只是在现有的答案上增加。我在eclipse中使用tomcat时遇到了这个问题。我换了一门课,做了以下步骤,

在eclipse中清洁和建造项目 MVN清洁安装 重新启动tomcat

我仍然面临着同样的错误。然后我清理tomcat,清理tomcat工作目录并重新启动服务器,我的问题消失了。希望这对大家有所帮助

在我的案例中,问题是在构建路径中有相同库的两个版本。这个库的旧版本没有这个功能,新版本有。