JJ プログラム仙人修行日誌

2024/04/20 からは、プログラム仙人修行の日誌を書いてます。

xHello が実行できない。

合格☆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」より

私の意見

  • java(コマンド)は,環境変数CLASSPATH が設定されていると,カレントディレクトリを見ません。カレントぐらいはみてほしいです。
  • iTunesインストーラは,他に影響するような環境設定をかってに変えます。そういうことはやめてください。

【教訓】
 考える価値がないもの*1は,早めに Google で調べる。

*1:ここで,私は困ってしまった。考える価値がないものがこの世にあるだろうか。