2012-02-10 21 views
0

Javaプログラムを実行しようとすると、次のエラーが発生します。エラーの取得スレッド "main"の例外java.lang.NoClassDefFoundError:

package cert; 
public class Sludge 
{ 
    public void testIt() 
    { 
     System.out.println("Sludge"); 
    } 
} 

"Exception in thread "main" java.lang.NoClassDefFoundError:"

は、私は、ファイルGoo.java私はファイルを持っている私は、証明書のフォルダを持っている

package book; 
import cert.*; 

class Goo 
{ 
    public static void main(String[] args) 
    { 
     Sludge s = new Sludge(); 
     s.testIt(); 
    } 
} 

Sludge.javaを持っている書籍のフォルダを持っています私はD:\studiesの下にフォルダ(書籍と証明書)を持っていて、私のクラスパスには以下が含まれています:

.;C:\Program Files\Java\jre6\lib;C:\Program Files\Java\jre7\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0\lib;D:\studies\book;D:\studies\cert;D:\studies

ファイルGoo.javaを実行しようとすると、NoClassDefFoundErrorが表示されます。

私はここで間違っていますか?

おかげで、あなたが実行されている必要がありますので Priyesh T.

+0

Javaの実行に使用しているコマンドを表示できますか? – jbranchaud

+0

私は次のコマンドを使ってjavaを実行しています:java Goo –

+0

フォルダには、 'Goo.class'と' Sludge.class'が含まれていなければなりません。両方のJavaファイルがコンパイルされていることを確認してください。 –

答えて

2

あなたGooクラスは、パッケージbookである:ブックディレクトリを含むディレクトリから

java book.Goo 

実行して。だから、例えば、あなたが実行されることがあります

> javac book\Goo.java cert\Sludge.java 
> java book.Goo 

book.GooGooクラスの完全修飾名です。

+0

'code' java book.Goo –

+0

を使ったときにうまくいきました.Java Gooを使ったときになぜうまくいかなかったのですか?私はクラスパスのクラスファイルへのパスを宣言した後も、なぜこのエラーが出るのだろうと混乱していますか? –

+0

@PriyeshTungare: 'Goo'は完全修飾クラス名ではないので、完全修飾クラス名を与える必要があります...クラスパス自体にパスを入れない;クラスファイルのフォルダ構造のルート(この場合は 'book'の親)へのパスをクラスパスに入れます。 –

関連する問題