2016-07-14 6 views
0

私はHadoopで新しく、私はthisのようなチュートリアルに従っています。私はhereにmapreduceの例の素敵なセットを見つけました。私はwordcountの例を実行することができましたが、私はEnhancedTopNの例を実行することができません。それは私にエラー:Exception in thread "main" java.lang.NoClassDefFoundError: EnhancedTopN (wrong name: samples/topn_enhanced/EnhancedTopN)を与える。 「Note:EnhancedTopN.javaはチェックされていない、または安全でない操作を使用しています」注:-Xlintで再コンパイルします:詳細についてはチェックを外してください。何が間違っていますか?NoClassDefFoundErrorのためにhadoopアプリケーションを実行できません

メッセージ「間違った名前」と感謝

答えて

0

NoClassDefFoundErrorは、あなたのクラスのパッケージ構造が間違っている、またはあなたはそれを間違った方法を実行していることを意味します。これは、Hadoopとは関係なく、パッケージがJavaで動作する方法とまったく関係ありません。

EnhancedTopNsamples.topn_enhancedという名前のパッケージにありますか。ソースファイルの一番上に次のパッケージ文がありますか?

package samples.topn_enhanced; 

public class EnhancedTopN { 
    // ... 
} 

ソースファイルEnhancedTopN.javaがディレクトリsamples\topn_enhancedにする必要があり、そしてあなたがパッケージ構造のベースディレクトリからそれをコンパイルして実行する必要がありますので、あなたのプロジェクトのディレクトリ構造は、パッケージ構造と一致している必要があります

C:\Project> javac samples\topn_enhanced\EnhancedTopN.java 

C:\Project> java samples.topn_enhanced.EnhancedTopN 

ディレクトリに行くとjava EnhancedTopNない動作し、あなたがについて尋ねているエラー与える使用:

参照:OracleのJavaチュートリアルのLesson: Packagesを参照してください。

関連する問題