首页 > 编程语言> > 如何避免Apache POI中的java.lang.NoSuchMethodError:org.apache.poi.util.IOUtils.copy(Ljava / io / InputStrea
如何避免Apache POI中的java.lang.NoSuchMethodError:org.apache.poi.util.IOUtils.copy(Ljava / io / InputStrea
作者:互联网
我有一个代码,用于将水印添加到现有的.doc文件中.
以下是我到目前为止尝试过的代码
public static void main(String[] args)
{
try
{
XWPFDocument xDoc = new XWPFDocument(new FileInputStream("test.doc"));
XWPFHeaderFooterPolicy xFooter = new XWPFHeaderFooterPolicy(xDoc);
xFooter.createWatermark("My Watermark");
}
catch(Exception e) {
e.printStackTrace();
}
}
以下是我得到的
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.copy(Ljava/io/InputStream;Ljava/io/OutputStream;)V
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:50)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:71)
at com.avi.Test.ReadDoc.main(Watermark.java:38)
解决方法:
我今天收到了这个错误:
“java.lang.NoSuchMethodError:org.apache.poi.util.POILogger.log(I [Ljava /郎/对象;)V]”
它看起来与您的错误不同,但非常相似.仅供参考,我正在使用maven来管理罐子.经过一些实验,我发现根案例是poi.jar和poi-ooxml.jar的版本不一致.
此配置将出错:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
我将poi.jar的版本从3.12更改为3.13
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
宾果游戏,问题解决了.我希望这会帮助遇到这种异常的人.
标签:java,apache-poi,doc-2 来源: https://codeday.me/bug/20190927/1824325.html