但凡开发过Java开发者,想必都遇到过java.lang.NoSuchMethodError的错误信息吧。
究其原因,这个错误基本上都是由JVM的“全盘负责委托机制”引发的问题:因为在类路径下放置了多个不同版本的类包,如commons-lang2.X.jar和commons-lang3.X.jar都位于类路径中,代码中用到了commons-lang3.X类的某个方法,而这个方法在commons-lang2.X中并不存在,JVM加载类时碰巧又从commons-lang.2.X.jar中加载类,运行时就会抛出NoSuchMethodError的错误。