NoSuchMethodError问题解决记录

NoSuchMethodError翻译过来是找不到方法

通过之前的查阅资料,知道一般是两种情况,一种是jdk版本不对,另一种是jar包冲突。

检查之后排除第一种原因,便针对第二种原因debug

使用开发工具eclipse

Eclipse Java EE IDE for Web Developers.

Version: Neon.2 Release (4.6.2)

找到代码报错的位置,例如:

找到Compiler.java这个类,拷贝这个类的全名,即xxx.xxx.xxx.Compiler。

eclipse-window-show view-Other搜索display,打开display窗口,在窗口中可以执行代码,关于display的功能网上已有说明,不做赘述

 

之后再报错位置之前打上断点,例如我28行报错,便在28行打断点,debug启动到28行时会停住,这时候不要F5或者F6下一步,会报错。在debug停住的时候切换到display窗口,输入这个类的全名,如xxx.xxx.xxx.Compiler,在后面加上.class.getProtectionDomain().getCodeSource(),例如:

xxx.xxx.xxx.Compiler.class.getProtectionDomain().getCodeSource()

选中这块代码然后点击红框的按钮执行,可以得到接下来你要跟踪的类的引用情况,检查这个类是不是在自己希望他引用的jar包的位置中,本次排查就发现引用来自不同的jar包,因为有类的重复。发现类的引用不对后,后续问题就简单了。

NoSuchMethodError问题解决记录_第1张图片

你可能感兴趣的:(NoSuchMethodError问题解决记录)