我收到以下错误:
/Users/username/IdeaProjects/WrestlingProject/src/DataScraper.java:22:41
java: cannot access org.apache.pdfbox.io.RandomAccessRead
class file for org.apache.pdfbox.io.RandomAccessRead not found
运行以下代码段时:
public class DataScraper{
public static void main(String[] args) {
try {
File folderFile = new File("pdf");
File pdfFile = folderFile.listFiles()[0];
PDDocument document = Loader.loadPDF(pdfFile);
PDFTextStripper stripper = new PDFTextStripper();
String text = stripper.getText(document);
System.out.println("Text in the PDF: " + text);
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
PDFBox jar 已应用在“项目结构库”选项卡中。 我的目标是将 pdf 文件转换为原始文本流。
为什么会出现错误,如何修复?
我尝试运行它,并尝试了几个pdf路径,但我相信路径是正确的。
您遇到的错误表明 Java 编译器找不到该类
org.apache.pdfbox.io.RandomAccessRead
。此类是 Apache PDFBox 的一部分,Apache PDFBox 是您用来处理 PDF 文件的库。
此错误最可能的原因是:
不正确或不完整的库导入:您可能已将 PDFBox 库添加到您的项目中,但特定版本的 jar 可能不包含
RandomAccessRead
类,或者您可能缺少 PDFBox 所需的其他 jar取决于。
类路径问题:该库可能无法正确添加到项目的类路径中。即使您已将其添加到项目结构库选项卡中,它也可能不会反映在您的构建配置或 IDE 的运行配置中。
依赖管理:如果您不使用 Maven 或 Gradle 等构建工具,则手动管理所有必要的依赖项可能会很困难,因为像 PDFBox 这样的库通常需要额外的相关库才能正常工作。
您可以尝试解决此问题:
检查依赖关系:确保 PDFBox 所需的所有 jar 都已添加到您的项目中。 PDFBox 通常至少需要主
pdfbox
jar、fontbox
jar,可能还需要其他内容,具体取决于您的版本。
使用构建工具:如果您尚未使用 Maven 或 Gradle,请考虑为您的项目设置这些构建工具之一。它们为您管理依赖项,并可以自动下载所有必需的 jar,包括传递依赖项。
对于 Maven,您可以将以下依赖项添加到您的
pom.xml
:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
对于 Gradle,您可以将其添加到您的
build.gradle
:
dependencies {
implementation 'org.apache.pdfbox:pdfbox:2.0.24'
}
刷新项目:有时 IDE 会要求您在添加新库后刷新或同步项目。
验证类路径:确保库已正确添加到 IDE 运行配置中的类路径中。
检查损坏的 Jars:您下载的 jar 文件也可能已损坏。尝试重新下载它们或使用 Maven 或 Gradle 等构建工具,它会为您下载 jar。
如果您使用的是 IntelliJ IDEA,您还可以尝试使缓存失效并重新启动 IDE (
File > Invalidate Caches / Restart > Invalidate and Restart
)。
如果您手动添加罐子,请确保您使用的是罐子的兼容版本。您可以在 PDFBox 下载页面或通过搜索 Maven 中央存储库找到兼容版本及其依赖项。