歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 如何排查java.lang.NoSuchMethodError錯誤

如何排查java.lang.NoSuchMethodError錯誤

日期:2017/3/1 9:26:46   编辑:Linux編程

今天碰到一個java.lang.NoSuchMethodException的異常。基本解決思路是:

1、檢查類所在jar包的版本是否正確。

2、檢查是否有jar包沖突,比如加載了多個版本的xxx.jar。

如果是maven工程,可以通過mvn dependency:tree來顯示工程的依賴樹。

3、如果還無法定位,可以通過以下方法來找到工程實際加載的類屬於哪個jar包。

1 Class<?> clazz = Class.forName("com.xxx.xxx.XXX"); # 類名
2 CodeSource cs = clazz.getProtectionDomain().getCodeSource();
3 String location = cs.getLocation().getPath();
4 System.out.println(location);

以上代碼沒有帶異常處理,自己加。

通過以上方法判斷實際加載的類是否符合預期,再做處理。

Copyright © Linux教程網 All Rights Reserved