我有一个简单的类,它利用阿帕奇提卡1.14,并显示如下:如何解决我的Apache Tika代码中的以下“NoClassDefFoundError”?
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);
}
}
然而,当我尝试运行它,我收到以下错误消息:
Exception in thread "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) at org.apache.tika.Tika.(Tika.java:116) at TikaExtraction.main(TikaExtraction.java:17) Caused by: 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 more
当我通过Tika库代码搜索时,我没有看到MimeTypesReader
类的.class
文件。有没有办法评论一些代码或解决这个问题 - 我将如何解决这个错误信息?
或者这可能是我使用的Tika版本的一个问题(即引用的代码是1.6,也许我有1.13或1.14)。
检查http://stackoverflow.com/questions/37941870/tika-1-13-runtimeexception – upog
我想你的Tika库可能已损坏或丢失文件。我检查了jar文件并找到了MimeTypesReader,试试这个jar。 http://mvnrepository.com/artifact/org.apache.tika/tika-core/1.14 –
使用Maven或Gradle来管理依赖关系将主要防止这类问题。 – chrylis