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

回到顶部