2017-03-31 7 views
0

私は、Apacheティカ1.14を利用して、簡単なクラスを持っており、それはここに示されています:Apache Tikaコードで次の "NoClassDefFoundError"を解決するにはどうすればよいですか?

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

:私はそれを実行しようとすると、

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); 
    } 

} 

しかし、私は次のエラーメッセージを取得していますTikaライブラリのコードを検索すると、MimeTypesReaderクラスのファイル.classは表示されません。いくつかのコードをコメントアウトする方法やこれを修正する方法はありますか?このエラーメッセージはどうすれば解決できますか?

これは、私が使用しているTikaのバージョンで問題になる可能性があります(つまり、参照されたコードが1.6で、1.13または1.14かもしれません)。

+0

check http://stackoverflow.com/questions/37941870/tika-1-13-runtimeexception – upog

+2

あなたのTikaライブラリが壊れているか、ファイルが不足している可能性があります。私はjarファイルをチェックし、MimeTypesReaderを見つけました。このjarを試してみてください。 http://mvnrepository.com/artifact/org.apache.tika/tika-core/1.14 –

+3

MavenやGradleを使用して依存関係を管理すると、ほとんどの場合、この種の問題を防ぐことができます。 – chrylis

答えて

2

このようなタイプのライブラリエラーでは、何かを削除していませんが、欠けているものを追加しています。したがって、ClassNotFoundErrorです。ほとんどの場合、サポートするjarファイルがないか、ライブラリの更新によって互換性の問題があります。 - tika-1.14

/** 
* 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; 
} 

をあなたは完全なライブラリを提供し、またそのことについては、最新のしていることを確認してください:実際には、あなたはそれがこれは例外をスローライブラリー法である自分

When I search through the Tika library code, I am not seeing the .class file for the MimeTypesReader class.

言いました。 these Apache mirrorsから入手できます。

ソースはtika-core.jarの一部ですので、あまりにもそれを持っていることを確認してください。