关于poi智能操作2003 不能2007的问题报java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/

本文详细介绍了当使用Java进行Excel操作时,遇到因POI版本不一致导致的java.lang.NoSuchMethodError错误的解决方法。通过对比不同POI组件的来源路径,找出并替换不一致的jar包,从而解决版本冲突问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于poi智能操作2003 不能2007的问题java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/Object;)V的解决方法

这个问题卡了我很久 ,一般这种原因是poi不一致

如果有报错类似:java.lang.NoSuchMethodError: org.apache.poi.util.POILogger.log(I[Ljava/lang/Object;)V
恭喜你!就是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);

        classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();
        res = classloader.getResource("org/apache/poi/POIXMLDocument.class");
        path = res.getPath();
        System.out.println("POI OOXML came from " + path);

        classloader = org.apache.poi.xssf.usermodel.XSSFWorkbook.class.getClassLoader();
        res = classloader.getResource("org.apache.poi.xssf.usermodel.XSSFWorkbook.class");
        if(res != null)
        path = res.getPath();
        System.out.println("work path is  " + path);

注意org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
前面的org.apache.poi.poifs.filesystem.POIFSFileSystem 是你引入的包
看看打印出来的jar是多少,如果是jar 不一致 删除掉重启就可以了

参考:http://blog.sina.com.cn/s/blog_66dddb8b0102xp9s.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值