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