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包,因为有类的重复。发现类的引用不对后,后续问题就简单了。