java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.(Ljava/io/File;Z) 报错处理


虚拟机不会无缘无故的报错,字面看下:没有该方法,首先应该推测有可能是Jar冲突导致的,因为一些jar中的类在升级的过程中不会向下兼容,所以有一些高级属性或方法就jar中没有,此POI就是。
可以先看下这个类的资源加载路径:
ClassLoader classloader =org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL res = classloader.getResource("org/apache/poi/poifs/filesystem/POIFSFileSystem.class");
String path = res.getPath();
System.out.println("POI Core came from " + path);

发现这个旧的jar被我从3.7-> 4.1.2 升过级了,怎么还会引用到?

处理办法:maven clean 重新编译,旧jar被删除了,问题得以解决!

另外推荐一下:hutool这个开源jar比较好用,看懂他的封装,然后恰当引用到项目中会事半功倍。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM