Learning site for website creation

CLASSPATH指定後にクラスを実行できなくなるエラーの対処法

  • 投稿日:2019年09月13日

クラスパスとは

コマンドプロンプトで指定したディレクトリ以外の場所にあるクラスやパッケージを使用する時に指定するもの

通常は「cd(チェンジディレクトリ)」してクラスファイルのある場所に移動する。

C:\Users\ica.101-25.000>cd c:\java\chap01

c:\java\chap01>java Hello
初めてのJavaプログラム。
画面に出力しています。

クラスパスを指定しておけば「cd(チェンジディレクトリ)」してクラスの場所に移動しなくてもクラスを見つけて使用してくれる

C:\Users\ica.101-25.000>java Hello
初めてのJavaプログラム。
画面に出力しています。

ただしクラスパスはクラス使用時の場所指定なのでコンパイルはできないので注意。

原因

クラスパスを指定するとデフォルトで設定されているカレント・ディレクトリへのクラスパスが無効になる。

よって、「cd(チェンジディレクトリ)」してクラスの場所に移動してクラスを実行してもエラーになってしまう。

※コンパイルはできる

C:\Users\ica.101-25.000>cd c:\java\chap02

c:\java\chap02>java ArithDouble
エラー: メイン・クラスArithDoubleが見つからなかったかロードできませんでした

対処法

環境変数「CLASSPATH」にカレントディレクトリを指し示す「.」を追加する

※クラスパスが1つの場合は「編集」ボタンが表示されないので既に設定されているクラスパスの後に「;.」を追記する。

※「Path」に「.」を追加してもカレントディレクトリを参照しにいかないので注意

c:\java\chap01;.

補足:挙動を検証する際の注意

「CLASSPATH」の変数値が2つ以上ある場合、変数値を1つ残して削除しても削除した場所は参照され続けます。

なので「CLASSPATH」ごと削除し、新たに登録しなおして検証する。