首页 > 解决方案 > PDFBox NoClassDefFoundError PDDocument

问题描述

尝试使用 PDFBox 读取 PDF 文件时,我在 PDDocument 类上收到 NoClassDefFoundError。这是我得到的错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument
        at readpdf.ReadPDF.main(ReadPDF.java:27)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 1 more

这是生成错误的代码:

```
      try (PDDocument document = PDDocument.load(new File(pdfFile))) {
            PDFTextStripper textStripper = new PDFTextStripper();
            // Get total page count of the PDF document
            int numberOfPages = document.getNumberOfPages();
            //set the first page to be extracted
            textStripper.setStartPage(1);
            // set the last page to be extracted
            textStripper.setEndPage(numberOfPages);
            String text = textStripper.getText(document);
            System.out.println(text);
        }
```

这是我的进口,以防万一它们可能是一个问题:

```
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
```

编辑:这是我用来从 windows 命令窗口运行程序的命令 -> java -jar readPdf.jar pdfFile.pdf 当我第一次开始构建程序时,我在 Netbeans 中添加了以下 jar 文件作为库文件,pdfbox-20.0 .20.jar、fontbox-20.0.20.jar 和 commons-logging-1.2.jar。我没有使用 Maven,仍在尝试学习如何使用它。Netbeans 版本 11.0 Windows 10 Corretto OpenJDK 11.0.7

标签: javanetbeanspdfbox

解决方案


问题是图书馆不见了。由于某种原因,Netbeans 11 正在创建一个库属性文件和一个名为 copy libs 的目录,但没有将这些库复制到该目录,也没有在我构建项目时在 dist 目录中创建一个 lib 目录。我试图找到正确的配置,但没有成功。我终于下载了 NetBeans 12 版并从头开始重新创建项目,问题就消失了。现在,当我构建项目时,我的库被复制到 lib 目录中,并且不再出现错误。


推荐阅读