- ベストアンサー
コマンドプロンプトから実行した時にエラーが出る
Javaでバイトコードを実行しようとしたら、こんな文が出ました。 Exception in thread "main" java.lang.NoClassDefFoundError: Test01 実行できないのでWEBで調べてみたところ、以下のような回答がありました。 以下引用文>> Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorld というエラーが出て動きません。 [S002-A08] 実行時エラーがでていることから、javaインタープリターは動いています。 HelloWorld という名前のクラスがみつからないというエラーです。 JDK1.2 以降の Java をお使いの場合、、 プロンプト> java -classpath . HelloWorld でどうでしょう? これでうまくいくならば CLASSPATH環境変数の 設定に . (ドット、ピリオド)がないのが原因です。 CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、 -classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を 教えてあげることをお勧めします。 doskey とうてば、Windows95/98 の MS-DOSプロンプトでのコマンド入力も苦にならないでしょう。 >> 以前はこんなことせずともコンパイル、実行できたんですが、何が変わってしまったのでしょうか。PATHの設定は正しく設定しているつもりなのですが… 個人的には毎回実行パラメーターに"-classpath . "と打ち込むのは面倒なので、打ち込まないでも実行できる方法が知りたいと思います。 ちなみにJDKのバージョンは1.3.1_01 OSはWindows2000です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
excelkingさん、こんにちは。 実は、WEBで調べた結果に答えはあるですんね。 >> これでうまくいくならば CLASSPATH環境変数の 設定に . (ドット、ピリオド)がないのが原因です。 >> CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、-classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を教えてあげることをお勧めします。 Javaを実行する場合、コマンド入力時にオプション -classpath があれば続くパスを、なければ環境変数 CLASSPATH で指定したパスをスタートラインにして、クラスファイルを検索します。 # 環境変数CLASSPATHです。PATHではありません。 逆に言うと、環境変数 CLASSPATH に変な値が設定されていると、オプション -classpath が指定されていない場合、JavaVMはクラスファイルが検索できず、エラーを返すわけです(たとえ、カレントディレクトリにあってもです)。 今回のエラーを見る限り、環境変数CLASSPATHはあるんだけど、カレントディレクトリを表す . (ピリオド)が含まれていないためでしょう。 よって、CLASSPATHの内容を確認してみてください。確認は、Win2000なら「コントロールパネル」-「システム」を選択、「詳細」タブを選択、「環境変数」ボタンを押下、画面上部のユーザー環境変数かシステム環境変数のリストに、「CLASSPATH」はありませんか。あれば、ダブルクリックしてください。開いた「システム変数の編集」ダイアログの「変数値」を修正します。すでに設定されている値の前に「.;(ピリオド、セミコロン)」を挿入します。 あとは「OK」を3回押してすべてのダイアログを閉じて、再度実行してみてください。おそらくエラーは回避されるはずです(でなければ、違うエラーに変化)。 ここで、ひとつ疑問。環境変数 CLASSPATH の設定がなく、オプション -classpath が指定されていないときに、実行するとどうなるのでしょう。 実は、JavaVMは、カレントディレクトリからクラスファイルを探そうとします。これが、「以前はこんなことせずともコンパイル、実行できたんですが」の理由だと思います。ところが何かアプリケーションをインストールした拍子に、勝手にCLASSPATHが設定されたのかもしれませんね。
その他の回答 (1)
- kuro_73
- ベストアンサー率28% (33/117)
mainメソッドは public static void main(String arg[]){ } になっていますか? public,static,void どのキーワードが抜けても、同様のエラーが発生したと思います。
お礼
なるほど、その辺も抜けていては同じようなエラーが出るのですね。 ソースを確認したところ、その辺の記述に誤りはありませんでした。 ありがとうございました。
お礼
どうも、QuickTimeのインストール時に、CLASSPATHの変数に値が入っていました。 その値が文字化けした値になっていたので、このような現象が起こった模様です。 CLASSPATHの変数自体を削除すると上手くいきました。 (その後は特に問題は出ていないんですが、大丈夫でしょうか…(笑)) 勉強になりました。ありがとうございます。