我正在尝试开发一个用于提取pdf内容的应用程序,并且我已经导入了apache tika依赖项,
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.12</version>
</dependency>
获取 PDFParser 类,它可以独立用于我代码中的任何实例化。
但是,为了处理扫描的文档,我尝试从 Maven 导入 pdfbox 依赖项,但是在 IntelliJ 下载依赖项后,我收到了任何 PDFParser 实例的 NoClassDefFoundError,即使我根本没有从 pdfbox 导入任何类。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.12</version>
</dependency>
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/exceptions/CryptographyException
at Starter.main(Starter.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.exceptions.CryptographyException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
我在这两种情况下运行的代码都非常直接用于测试。
import org.apache.tika.parser.pdf.PDFParser;
public class Starter {
public static void main(String[] args){
System.out.println("THIS IS A TEST");
PDFParser stuff = new PDFParser();
}
}
使用当前版本,像这样:
<dependencies>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parser-pdf-module</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.6</version>
</dependency>
</dependencies>
这也将导入 PDFBox 依赖项。