如何解决我的 Apache Tika 代码中的以下"NoClassDefFoundError"?



我有一个简单的类,它利用了Apache Tika 1.14,如下所示:

import java.io.File;
import java.io.IOException;
import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;
import org.apache.tika.mime.*;
import org.xml.sax.SAXException;
import org.apache.tika.config.*;

public class TikaExtraction {
public static void main(final String[] args) throws IOException, TikaException {
//Assume sample.txt is in your current directory              
File file = new File("sample.txt");
//Instantiating Tika facade class
Tika tika = new Tika();
String filecontent = tika.parseToString(file);
System.out.println("Extracted Content: " + filecontent);
}
}

但是,当我尝试运行它时,我收到以下错误消息:

线程"main"中的异常 java.lang.NoClassDefFoundError: org/apache/tika/mime/MimeTypesReader at org.apache.tika.mime.MimeTypesFactory.create(MimeTypesFactory.java:158) at org.apache.tika.mime.MimeTypes.getDefaultMimeTypes(MimeTypes.java:577) at org.apache.tika.config.TikaConfig.getDefaultMimeTypes(TikaConfig.java:73) at org.apache.tika.config.TikaConfig.(TikaConfig.java:222) at org.apache.tika.config.TikaConfig.getDefaultConfig(TikaConfig.java:345) 在org.apache.tika.Tika。(提卡.java:116) at TikaExtraction.main(TikaExtraction.java:17) 原因:java.lang.ClassNotFoundException: org.apache.tika.mime.MimeTypesReader at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ...7 更多

当我搜索 Tika 库代码时,我没有看到MimeTypesReader类的.class文件。 有没有办法注释掉一些代码或解决此问题 - 我将如何解决此错误消息?

或者这可能是我正在使用的 Tika 版本的问题(即引用的代码来自 1.6,也许我有 1.13 或 1.14)。

对于这种类型的库错误,它不是删除某些内容,而是添加缺少的内容,因此ClassNotFoundError.大多数情况下,您要么缺少一些支持 jar,要么由于库更新而存在兼容性问题。其实是你自己说的

当我搜索 Tika 库代码时,我没有看到MimeTypesReader类的.class文件。

这是引发异常的库方法:

/**
* Creates and returns a MimeTypes instance from the specified document.
* @throws MimeTypeException if the type configuration is invalid
*/
public static MimeTypes create(Document document) throws MimeTypeException {
MimeTypes mimeTypes = new MimeTypes();
//For some reason the MimeTypesReader is missing
new MimeTypesReader(mimeTypes).read(document);
mimeTypes.init();
return mimeTypes;
}

确保您提供了完整的库以及最新的库 -tika-1.14.你可以从这些Apache镜像之一中得到它。

源是tika-core.jar的一部分,所以请确保你也打开了它。

相关内容

  • 没有找到相关文章

最新更新