尝试使用pdfBox时出现.NoClassDefFoundError

当我尝试使用其中一个PDFBox示例来提取图像时,在运行时,它给出了以下exception:

  Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.pdfbox.pdfparser.BaseParser.(BaseParser.java:68) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1218) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1186) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1111) at pdfboxtest.PdfBoxTest.extractImage(PdfBoxTest.java:69) at pdfboxtest.PdfBoxTest.main(PdfBoxTest.java:53) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 6 more 

这是发生exception的代码的一部分,在最后两行:

  String pdfFile = "pdf file path"; File pdf=new File(pdfFile); PDDocument document = null; document = PDDocument.loadNonSeq(pdf, null, password); document = PDDocument.load( pdfFile ); 

在lib目录中添加commons-logging-1.1.1.jar或jcl-over-slf4j-1.7.6.jar。

从以下链接下载jar文件。 将其添加到您的类路径。

将所需的依赖项添加到类路径(从链接)

主PDFBox组件pdfbox对commons-logging有很强的依赖性

对于使用PDFBox 2.0.4 ,您需要在Libraries目录中添加debugger-app-2.0.4.jar