今天碰到一個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); 以上代碼沒有帶異常處理,自己加。
通過以上方法判斷實際加載的類是否符合預期,再做處理。
新聞熱點
疑難解答