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