Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PDFBox获取java.lang.NoClassDefFoundError_Java_Pdf_Pdfbox_Noclassdeffounderror - Fatal编程技术网

使用PDFBox获取java.lang.NoClassDefFoundError

使用PDFBox获取java.lang.NoClassDefFoundError,java,pdf,pdfbox,noclassdeffounderror,Java,Pdf,Pdfbox,Noclassdeffounderror,我正试图从Eclipse中的java应用程序中读取带有PDFBox库的PDF文件。这是一个简单的PDF文本,但我得到一个异常java.lang.NoClassDefFoundError:org/apache/fontbox/FontBoxFont 我读过类似的文章,但这些解决方案对我不起作用。这是我的密码: package pdfreader; import java.io.*; import org.apache.pdfbox.pdmodel.*; import org.apache.pdf

我正试图从Eclipse中的java应用程序中读取带有PDFBox库的PDF文件。这是一个简单的PDF文本,但我得到一个异常java.lang.NoClassDefFoundError:org/apache/fontbox/FontBoxFont

我读过类似的文章,但这些解决方案对我不起作用。这是我的密码:

package pdfreader;

import java.io.*;
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.text.*;

public class PdfReader {
private static void readPDF(String srcPDF) {
    try {
        PDDocument document = PDDocument.load(new File(srcPDF));
        if (!document.isEncrypted()) {
            PDFTextStripper stripper = new PDFTextStripper();
            String text;

            text = stripper.getText(document);

            System.out.println("Text:" + text);
        }
        document.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    
    String srcPDF = "Test.pdf";

    readPDF(srcPDF);
    
}
}
追踪是:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/fontbox/FontBoxFont
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:89)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:66)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:933)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:515)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:489)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:156)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:144)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:397)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:325)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:272)
at org.apache.pdfbox@2.0.21/org.apache.pdfbox.text.PDFTextStripper.getText(PDFTextStripper.java:233)
at PDFReader/pdfreader.PdfReader.readPDF(PdfReader.java:17)
at PDFReader/pdfreader.PdfReader.main(PdfReader.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.fontbox.FontBoxFont
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)
... 14 more

我在Eclipse的Java构建路径中包含了commons-logging-1.1.jar和pdfbox-2.0.21.jar。

我在路径中添加了fontbox-2.0.21.jar解决了这个问题