如何解决java.lang.NoSuchMethodError

时间:2018-01-12 19:56:48

标签: java eclipse maven-2 nosuchmethoderror

我有一个可以在Eclipse中正确运行的项目,但运行独立jar会在运行时为类提供java.lang.NoSuchMethodError。

我解压缩了jar文件,可以在jar中的一个库文件中看到类文件,我确实看到了类中定义的方法。异常不是关于类未找到,而是在类中找不到该方法。

无法在互联网上找到任何有用的信息来解决问题。

2 个答案:

答案 0 :(得分:5)

很可能在依赖项中有另一个jar具有相同的类(可能是同一个库的另一个版本)但是没有这个方法。我认为后一个类是加载的而不是你解压缩的类。

答案 1 :(得分:0)

时出现

NoSuchMethodError

  

...应用程序尝试 调用类的指定方法 (静态   或实例),该类 不再具有该定义   方法 即可。通常,编译器会捕获此错误;这个错误可以   只有在类的 定义不兼容时才会在运行时发生   改变

如上所述,有两种可能性:

  1. 两种方法定义都不存在
  2. 如果存在方法定义,那么它们可能会发生不兼容的更改,即您可能在运行时使用不同版本的jar / class。