合格☆Java の原稿書きのために,ノートパソコンに JDK を本の付録CDからインストール。
インストール後,
xHello.java をコンパイルし,
j:\java xHello
と,実行しようとしたら,
Exception in thread "main" java.lang.NoClassDefFoundError
とのエラーが出て実行できず。
このエラーは,xHello のmain が見つからないというエラーです。
よくあるのは,xHello.java のファイル名ミスです。Java は,クラス名とファイル名が一致しておかないとこのエラーが出ます。
しかし,j:\ には,しっかりと,xHello.cass はあり,プログラムも正しいです。
本の付録ではなく,最新版をダウンロードして再インストールしても解決しません。自宅のパソコンでは,動作してます。かなり悩みました。Google で,"5.0 Exception in thread "main" java.lang.NoClassDefFoundError"で検索をかけてやっと分かりました。原因は,iTunes のバージョンアップでした。iTunes は,勝手に CLASSPATH を変更してました。
参考:2005-09-09
解決方法は,
コマンドラインから
set CLASSPATH=
これで,java(コマンド)が,カレントディレクトリーをみてくれます。
Javaの入門書には,OS の ネイティブの path 変更を勧めていますが,バッチファイルでそのつど一時的に変更することをお勧めします。
環境セットバッチファイル JDK 1.5.0 Update6 をインストールした場合
Javaのプログラム作成フォルダを,c:\jwork としていると仮定
- WinXp,Win2000の場合
rem Javaの開発作業を行う。
path "C:\Program Files\Java\jdk1.5.0_06\bin";%path%
set CLASSPATH=
subst j: /D
subst j: c:\jwork
j:
cmd
- Win98 の場合
rem Javaの開発作業を行う。
path "C:\Program Files\Java\jdk1.5.0_06\bin";%path%
subst j: /D
subst j: c:\jwork
doskey
j:
command「合格☆Java」より
私の意見
*1:ここで,私は困ってしまった。考える価値がないものがこの世にあるだろうか。