- 締切済み
コンパイルできるのに実行できない
はじめまして。 最近JAVAを始めようと思ったんですが、早くも行き詰まってしまいました。 コンパイルは出来るんですが、実行されないのです。 以下のような文章が出てきます。 Exception in thread "main" java.lang.NoClassDefFoundError: Hello ちなみに、買った本のサンプルプログラムでも同じでした。 これは何が原因なんでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- yuji
- ベストアンサー率37% (64/169)
これは初心者の人がよく引っかかるところですね。 JavaFAQのサイトがあるので、そちらをご覧ください。 今回の件以外にも、いろいろ参考になることが載って いますので、目を通しておくとよいです。
- BLACKTALON
- ベストアンサー率37% (110/293)
CLASSPATHは何も指定しないときのデフォルトがカレントディレクトリ、 指定した場合、指定した物のみ (なので、カレントディレクトリもCLASSPATHに含める場合は 指定しなければならない)、 となるはずなのですが。 カレントディレクトリでjavaを実行しているか、CLASSPATHにclassファイルの有る ディレクトリを参照しているか、確認してください。 あとは、".class"は実行時に指定しませんので念のため。
お礼
返事遅れてスイマセン。 皆さんの言う通りでした。 無事に実行できました! どうもありがとうございました。m(__)m
- finalanswer
- ベストアンサー率60% (182/303)
arya_520さんは、最近Javaを始めたということなので、JDKのバージョンは1.3であると思います。 DOSプロンプト(コマンドプロンプト)にて、javacでコンパイルした後、 > java Hello というコマンドでjava.lang.NoClassDefFoundErrorの例外が発生するのであれば、 > java -classpath . Hello というように、-classpathオプションで、カレントディレクトリを指定することにより、クラスパスが見つかります。 なお、毎回例外が発生するようであれば、setコマンドで環境変数CLASSPATHの設定内容を確認し、 > set CLASSPATH=.;%CLASSPATH% というコマンドを実行すれば、javaコマンドで-classpathオプションが不要となります。
お礼
返事遅れてスイマセン。 結局、『set CLASSPATH=.;%CLASSPATH%』としたら完全に消えました。 どうもありがとうございました。m(__)m
お礼
返事遅れてスイマセン。 初心者がよく引っ掛かるトコだったんですね! 無事に実行できるようになりました。 どうもありがとうございました。m(__)m