Apache Tika PDFParser 在导入 pdfbox 依赖后返回 NoClassDefFound

问题描述 投票:0回答:1

我正在尝试开发一个用于提取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();
    }
}
maven intellij-idea dependencies pdfbox
1个回答
0
投票

使用当前版本,像这样:

<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 依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.