2011-08-15 6 views
0

申し訳ありませんが、単純なJavaクラスを作成していたので、単に「こんにちは!」と表示されました。ここでは、コードは次のとおりです。アプリケーションを実行しようとするとNoClassDefFoundErrorが表示されるのはなぜですか?

public class Hello 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello!"); 
    } 
} 

私は、コマンドプロンプトを通じてクラスをコンパイルし、私はそれを実行したいときに、それは私のクラスパスに問題があることを示唆しているとNoClassDefFoundErrorを与えました。これは一流のプログラムなので、本当にばかげている。私は多くのことを試しましたが、問題を解決するものは何もありません。

どうすればこの問題を解決できますか?

+2

コンパイルと実行のために実行したコマンドは何ですか? – birryree

+0

@Agadoo:Jonの回答が問題の解決に役立った場合は、その横のチェックマークボタンを使用して問題を解決してください。これは、これ以上行うことがないことを知るのに役立ちます。 –

答えて

0

環境変数CLASSPATHが設定されていますが、「。」は含まれていません。 (ドット)は、現在のディレクトリを表すために(デフォルトが行うように)このように実行します。

「javaのスペースダッシュCPスペースドットスペースこんにちは」だ
java -cp . Hello 

"Hello、World"を過ぎると、クラスパスの設定が常に必要になることがわかります。このような手で(まれに、現実世界では)、スタートアップスクリプトでツール、またはIDE。

環境変数CLASSPATHの使用は、Javaの初期の段階から残っている悪い習慣です。しばしば、AppleのQuickTimeインストーラが何かに設定していることがわかります。この変数は決して使用しないでください。

6

コードの実行方法は表示されていません。私の推測では、あなたが実行されたことである:

java Hello.class 

Hello.class呼ばクラスを実行しようとしています。クラスはちょうどHelloという名前の、あなたが必要とされています

java Hello 

あなたは問題ないはずCLASSPATH環境変数を設定していない場合。それ以外の場合は、どちらか.を含むパスに設定するか、コマンドラインでそれを指定します。

javac Hello.java 
:もちろん

java -cp . Hello 

、これはこのようなコマンドを使用して、コード最初コンパイルあなたを想定しています

+0

ありがとうございました!私の愚かな私の愚かな...私は何百万回もやったが、何らかの理由で今回は私はクラスを省略すべきでないことを忘れていた。 – Agadoo

+0

あなたは@Jon Skeetの答えを受け入れるべきだ – Snicolas

関連する問題