将外部 JAR 附加到 eclipse 中的 java 项目 - java.lang.NoClassDefFoundError

Attaching external JARs to a java project in eclipse - java.lang.NoClassDefFoundError

尝试在 eclipse 中实现 pdfbox,但是当我 运行 它时出现此错误。

>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

>   at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:68)

>   at com.pdf.util.PDFTextParser.<init>(PDFTextParser.java:26)

>   at com.pdf.util.PDFTextParser.main(PDFTextParser.java:77)

>Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

>   at java.net.URLClassLoader.findClass(Unknown Source)

>   at java.lang.ClassLoader.loadClass(Unknown Source)

>   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

>   at java.lang.ClassLoader.loadClass(Unknown Source)

>   ... 3 more

程序停在这行代码:

parser = new PDFParser (new FileInputStream(file));

PDFParser 来自 pdfbox。

猜测我附加 JAR 文件的方式有问题吗?

PDFBox 需要 Commons Logging(请参阅项目网站上的 this dependencies page)。您需要在类路径中引用该 Jar 以及 PDFBox Jar。如果您使用像 Maven 这样的构建工具,它应该会自动为您的项目下载它。

检查link如何在堆栈溢出中将外部 jar 添加到类路径