原因:
当前项目a 引入了水印项目b的jar包,a和b同时需要依赖apache.poi包,a项目是3.17,b项目是3.14,由于最近依赖原则,项目中的版本号是3.17
之前是使用了b的给docx打水印的功能,相安无事。现在要在a项目生成ppt,使用b给ppt打水印,在调用b的相关方法时,项目编译通过,运行到到b的相关方法报NoSuchMethodError
如果在我们开发阶段,在a项目里引入一个不存在的包或者类,编译时可以立刻发现。 但是如果引的三方jar包的类中,import了不存在的类,或者代码有问题,编译时是不会报错的,只有运行到代码位置才会报错
这就引发了思考:为什么编译时不去递归检查所有的包的类是否存在?
todo:复习类加载