Java项目提取PDF报错package org.apache.pdfbox does not exist解决
Java项目PDFBox依赖报错排查方案
问题现象
开发Java项目实现PDF提取功能时触发编译错误,核心报错提示:package org.apache.pdfbox does not exist,PDF提取功能无法正常运行。
项目中涉及PDFBox的导入代码如下:
import org.apache.pdfbox.PDFReader import org.apache.pdfbox.*; import org.apache.pdfbox.cos.COSDocument; import org.apache.pdfbox.pdmodel.PDDocument
相关报错参考截图:
已尝试添加2.0.26版本的fontbox、pdfbox依赖,问题未解决,运行时异常参考截图:
修复步骤
- 补全依赖配置
2.0.26版本的PDFBox不能只引入pdfbox和fontbox两个包,还需要配套引入commons-logging依赖,以Maven配置为例,正确依赖块如下:
配置完成后必须重新加载项目依赖:IDEA环境右键pom.xml选择Maven-Reload project;Eclipse环境右键项目选择Maven-Update Project;如果是手动导入jar包的项目,需要确认jar包已被加入项目构建路径,不能仅将jar文件放在项目目录下不关联classpath。<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.26</version> </dependency> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>fontbox</artifactId> <version>2.0.26</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> - 修正错误的导入语句
当前导入代码存在两处明确问题:org.apache.pdfbox.PDFReader是PDFBox 1.x版本的类,在2.0.x版本中已被移除,这行导入直接删除即可- 导入语句属于Java代码,末尾必须加分号,现有代码中
import org.apache.pdfbox.PDFReader、import org.apache.pdfbox.pdmodel.PDDocument两行末尾缺失分号,也会触发编译失败
修正后的基础导入参考:
import org.apache.pdfbox.cos.COSDocument; import org.apache.pdfbox.pdmodel.PDDocument; // 后续可按需导入文本提取、页面解析对应的类 - 排查版本冲突
完成以上两步后如果仍报错,检查项目依赖树,排查是否存在其他组件引入的1.x版本PDFBox依赖造成版本冲突,发现旧版本依赖直接排除即可。
内容的提问来源于stack exchange,提问作者Suntea Purwaningrum
相关产品推荐
相关产品推荐

