Java为什么会出现NotOLE2FileException:无效的标头签名错误?
在创建“如何使用Apache POI替换Microsoft Word文档中的文本”的代码段时?运行代码段时出现以下错误。作为附加信息,Nhooo网站的代码片段被编写为Maven项目。
org.apache.poi.poifs.filesystem.NotOLE2FileException:标头签名无效;读取0xE011BDBFEFBDBFEF,预期为0xE11AB1A1E011CFD0 –您的文件似乎不是有效的OLE2文档
当代码尝试打开Word文档时,会产生此错误消息。Apache POI报告Word文档具有无效的标头签名,而不是有效的OLE2文档。将原始文档与maventarget目录下的文档进行比较,我发现文件大小有所不同。这可能意味着某些内容会更改文档并破坏标题。
经过一番谷歌搜索后,我发现这个错误是由于Maven资源过滤引起的。Maven资源筛选过程导致Word文档标题在复制阶段损坏。解决此问题的方法是确保将过滤过程设置为false。在pom.xmlMaven项目应该被改变,以具有以下配置。
<build><resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
</resources>
</build>
以上是 Java为什么会出现NotOLE2FileException:无效的标头签名错误? 的全部内容, 来源链接: utcz.com/z/326309.html