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

时间:2015-09-24 19:33:18

标签: java eclipse pdf jar pdfbox

尝试在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文件的?

  • 我将所有jar文件移动到我创建的名为“lib”的文件夹中,该文件夹是项目的一部分。
  • 进入项目属性 - &gt; Java Build Path,并为每个JAR文件单击“Add External JAR”
  • 执行此操作后,我注意到每个JAR都显示“Source attachment:none”,因此我单击编辑并将目标设置为lib文件夹中的位置。
  • 当我进入运行配置时,在Classpath下,我可以看到项目下面有JAR文件。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

检查链接如何将外部jar添加到堆栈溢出中的类路径