gpt4 book ai didi

java - 在 Eclipse 中导入 Tika 1.13 时出现 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 18:03:10 25 4
gpt4 key购买 nike

我已按照 tika 指南完成了以下步骤:

  1. 将tika-core和tika-parser依赖添加到maven项目的pom.xml中
  2. 从 eclipse 运行 maven install 以生成 tika-core jar 和 tika-parser jar
  3. 将 tika-core jar 和 tika-parser jar 添加到我的 eclipse 项目构建路径

尝试运行 tika 时出现此运行时异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException
at com.ibm.hrl.ace.pdftotext.TikaExtracter.parse(TikaExtracter.java:33)
at com.ibm.hrl.ace.pdftotext.Main.AllPdfsToText(Main.java:116)
at com.ibm.hrl.ace.pdftotext.Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException
at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:786)
at java.lang.ClassLoader.loadClass(ClassLoader.java:760)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:326)
at java.lang.ClassLoader.loadClass(ClassLoader.java:741)
... 3 more

据我所知,当我使用 maven 构建 jar 时,它确实从构建日志中正确添加了 pdfbox:

[INFO] Including org.apache.pdfbox:pdfbox:jar:2.0.1 in the shaded jar.
[INFO] Including org.apache.pdfbox:fontbox:jar:2.0.1 in the shaded jar.
[INFO] Including org.apache.pdfbox:pdfbox-tools:jar:2.0.1 in the shaded jar.
[INFO] Including org.apache.pdfbox:pdfbox-debugger:jar:2.0.1 in the shaded jar.
[INFO] Including org.apache.pdfbox:jempbox:jar:1.8.12 in the shaded jar.

这是我的 Maven 依赖项:

  <dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.tika/tika-core -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tika/tika-parsers -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.13</version>
</dependency>
</dependencies>

最佳答案

问题是,如果您在构建路径中手动添加 tika-core 和 tika-parsers jar,您将不会拥有在其自己的 POM 中列出的传递依赖项。

所以我建议:

  1. 删除您自己构建的 tika-core 和 tika-parsers 版本。相反,您应该依赖central 上可用的版本。这将确保构建您的项目的另一个项目将获得相同的 jar(而不是本地构建的)
  2. 您有两个选择

(选项 A,使用 Maven)不要手动将 jar 添加到 Eclipse 构建路径中。依赖 Eclipse 的内置 Maven 插件(例如 m2e)或使用 Eclipse 的 Maven 插件(调用 mvn eclipse:eclipse 来更新 .classpath 和 .project)。

(选项 B,没有 Maven)如果您的项目无法使用 Maven,您不仅需要添加 tika-parsers 和 tika-core jar,还需要添加这些项目所需的所有(大部分)传递依赖项(包括例如每种格式的特定库 [POI 用于 Office,pdfbox 用于 PDF...)。您可以通过在包含 tika-parsers 的 pom 的文件夹中键入 mvn dependency:list 来获取依赖项列表。

关于java - 在 Eclipse 中导入 Tika 1.13 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39081302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com