Posted on 2008-02-26 04:53
leekiang 阅读(582)
评论(2) 编辑 收藏 所属分类:
java
新老版本并存,而老版本的jar包路径还在classpath中,并且在新版本的前面,程序调用新方法,编译没问题,但运行时会先去找旧的classes,而旧的classes中不含此方法,故报NoSuchMethodError错误,而且这个还不是异常,捕获不了,不好找原因。
还有一种情况,你的代码调用a.jar ,a.jar又依赖b.jar,这时如果b.jar版本不对,也可能报这个错误。
另外新旧版本并存,老版本在前,运行时调用的方法名相同,但内容变了,这时就不是报Error了,而是可能报各种稀奇古怪的异常。
使用poi-3.0.2时,如果旧的poi还在classpath,则以上两种情况都可能发生。