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です。
No.2
- 回答日時:
mainメソッドは
public static void main(String arg[]){
}
になっていますか?
public,static,void
どのキーワードが抜けても、同様のエラーが発生したと思います。
なるほど、その辺も抜けていては同じようなエラーが出るのですね。
ソースを確認したところ、その辺の記述に誤りはありませんでした。
ありがとうございました。
No.1ベストアンサー
- 回答日時:
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が設定されたのかもしれませんね。
参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs …
どうも、QuickTimeのインストール時に、CLASSPATHの変数に値が入っていました。
その値が文字化けした値になっていたので、このような現象が起こった模様です。
CLASSPATHの変数自体を削除すると上手くいきました。
(その後は特に問題は出ていないんですが、大丈夫でしょうか…(笑))
勉強になりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JAVAにのeclipseに関する質問で...
-
split関数で区切り文字がない場合
-
Eclipse(JAVA)のデバッグで他...
-
「ワークスペースをビルド中」...
-
Eclipseで実行>Javaアプリケー...
-
eclipseのjavaを実行できない
-
Javascriptの値をJava(JSP)へ渡...
-
コミット前の更新データをチェ...
-
Javaについての質問です。 コン...
-
eclipseでスタックサイズを変更...
-
Javaで年月の取得(YYYYMM形式で)
-
Spyder上のPythonでinputが実行...
-
jasper.exceptionとは?
-
Runtime.exe
-
eclipseが使えません
-
eclipseでステップ実行がしたい
-
Eclipse 実行→Javaアプリケー...
-
データベースのオープンエラー...
-
eclipse実行ができない
-
エクリプスで実行時、最新クラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
split関数で区切り文字がない場合
-
「ワークスペースをビルド中」...
-
eclipseでスタックサイズを変更...
-
コミット前の更新データをチェ...
-
JAVAにのeclipseに関する質問で...
-
Javaで年月の取得(YYYYMM形式で)
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
エクリプスで実行時、最新クラ...
-
jasper.exceptionとは?
-
環境変数設定で
-
eclipseで「サーバーで実行」表...
-
eclipseのjavaを実行できない
-
Worksheet_Changeが動かない
-
Google Colabでimport soxが出...
-
Javascriptのパーミッション
-
javaからVBAを実行する方法を教...
-
javascriptで、style undefined...
-
バイナリーコードと、ソースコ...
-
[JAVA]evalで文字列を計算式に!
おすすめ情報