You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PDFBox 2.0.25依赖,本地正常Jenkins(VM)报版本信息缺失IO异常求助

解决PDFBox在Jenkins虚拟机中报错:java.io.IOException: Error: Header doesn't contain versioninfo

以下是几个排查和解决方向:

  • 检查PDF文件完整性
    Jenkins环境中读取的PDF大概率是损坏的:要么是传输到虚拟机时被截断、拷贝失败,要么是构建过程中生成的PDF未完成就被读取。可以直接到Jenkins工作目录找到目标PDF,手动打开验证;或者在虚拟机里执行file <你的PDF路径>命令,确认输出是PDF document, version X.X这类标准描述,而不是empty或其他非PDF类型。

  • 对齐本地与Jenkins的依赖/环境版本

    • 核对PDFBox依赖版本:检查项目的构建配置文件(Maven的pom.xml或Gradle的build.gradle),确保Jenkins构建时拉取的PDFBox版本和本地完全一致,避免版本差异导致的解析逻辑不兼容。
    • 检查JDK版本:PDFBox部分版本对JDK有明确要求(比如2.0+版本建议JDK8及以上,2.1+建议JDK11+),确认Jenkins虚拟机的JDK版本和本地一致,版本过低可能触发兼容性错误。
  • 排查文件权限与路径问题

    • 权限:Jenkins运行的系统用户可能没有目标PDF的读取权限,在Linux虚拟机里可以执行chmod +r <PDF路径>给文件添加读权限,或者调整文件所属用户组为Jenkins所在组。
    • 路径:避免使用相对路径读取PDF,本地的相对路径在Jenkins工作空间中可能指向错误的文件,改用绝对路径定位PDF文件。
  • 清理构建残留与缓存

    • 清理Jenkins工作空间:删除旧的构建产物,重新执行构建,避免残留的损坏PDF被重复读取。
    • 清理依赖缓存:如果是Maven项目,删除Jenkins虚拟机上的PDFBox依赖缓存(路径一般为~/.m2/repository/org/apache/pdfbox),重新拉取完整的依赖包。

内容的提问来源于stack exchange,提问作者Rashi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:36:25