How to resolve java.lang.NoSuchMethodError [duplicate]

不问归期 提交于 2020-01-05 06:39:18

问题


I have a project that I can run correctly from within Eclipse, but running the standalone jar gives me the java.lang.NoSuchMethodError for a class at runtime.

I unpacked the jar file and can see the class file in one library file in jar and I do see the method defined in the class. The exception is not about class not found, but just can't find the method in the class.

Could not find any helpful information on the internet for how to solve it.


回答1:


It is much likely that there is another jar in the dependencies that has the same class(may be another version for the same library) but don't have this method. I think that this latter class is the one loaded instead of the one you unpacked.




回答2:


NoSuchMethodError occurs when

... application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed

As highlighted, there are two possibilities :

  1. Either method definition doesn't exists
  2. If method definition exist, then they might have incompatible change i.e. you might be using different version of jar/class during runtime.


来源:https://stackoverflow.com/questions/48233192/how-to-resolve-java-lang-nosuchmethoderror

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!