Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决java.lang.NoSuchMethodError_Java_Eclipse_Maven 2_Nosuchmethoderror - Fatal编程技术网

如何解决java.lang.NoSuchMethodError

如何解决java.lang.NoSuchMethodError,java,eclipse,maven-2,nosuchmethoderror,Java,Eclipse,Maven 2,Nosuchmethoderror,我有一个可以在Eclipse中正确运行的项目,但是运行独立jar会在运行时为类提供java.lang.NoSuchMethodError 我解压缩了jar文件,可以在jar中的一个库文件中看到类文件,并且我确实看到了类中定义的方法。异常不是关于找不到类,而是在类中找不到方法 在internet上找不到有关如何解决此问题的有用信息 依赖项中很可能有另一个jar具有相同的类,可能是同一库的另一个版本,但没有此方法。我认为后一个类是加载的类,而不是解包的类 依赖项中很可能有另一个jar具有相同的类,可

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

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


在internet上找不到有关如何解决此问题的有用信息

依赖项中很可能有另一个jar具有相同的类,可能是同一库的另一个版本,但没有此方法。我认为后一个类是加载的类,而不是解包的类

依赖项中很可能有另一个jar具有相同的类,可能是同一库的另一个版本,但没有此方法。我认为后一个类是加载的类,而不是解包的类

发生在

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

正如所强调的,有两种可能性:

两个方法定义都不存在 若方法定义存在,那个么它们可能有不兼容的更改,即,您可能在运行时使用不同版本的jar/类。 发生在

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

正如所强调的,有两种可能性:

两个方法定义都不存在 若方法定义存在,那个么它们可能有不兼容的更改,即,您可能在运行时使用不同版本的jar/类。
我扩展了可执行jar中的所有jar。我为这个班找到了两个班级档案。反编译它们,并且它们都定义了相同的方法。您确定这两个方法具有相同的签名吗?尝试一次从可执行jar中取出一个类,只是为了验证分析。是的,它们都具有相同的签名。我还试图删除一个类,并在jar中只保留一个副本,但这并不能解决问题。我为这个班找到了两个班级档案。反编译它们,并且它们都定义了相同的方法。您确定这两个方法具有相同的签名吗?尝试一次从可执行jar中取出一个类,只是为了验证分析。是的,它们都具有相同的签名。我还试图删除一个类,并在jar中只保留一个副本,但这并不能解决问题。@Ravi这没有帮助。在我的文章中,我确实看到了类文件和包中定义的方法。在我的问题中,我确实看到了类文件和包中定义的方法