カレントディレクトリに簡単なプログラムを作成し、コンパイルと実行をする場合には、
環境変数「 CLASSPATH 」を設定する必要はありません。
Javaがクラスを探す順序は以下の通りです。
- ブートストラップクラス Bootstrap classes
Javaのプラットフォームで提供されるクラス。
通常は、JREのインストールされたディレクトリにある
/lib/rt.jar などが探されます。
- 拡張クラス Extension classes
ベンダから入手した jar ファイルなどは
JREのインストールされたディレクトリの
/lib/ext/ に配置します。
このディレクトリにある jar
に含まれるクラスが探されます。
- ユーザクラスパス
Javaコマンドに指定したクラスパス、または
環境変数 CLASSPATH に指定したディレクトリ、
zip ファイルおよびjar
ファイルが探されます。
Javaコマンドの「 -cp 」または「 -classpath 」
オプションのクラスパス指定が優先されます。
cp と classpath は同義です。
ユーザクラスパスの指定が無い場合は、カレントディレクトリを探します。
クラスパスの指定の例
- java -cp .;path1 ...
- java -cp .;path1;path2;path3 ...
- java -cp path1;path2;path3 ...
- set CLASSPATH=.;path1;path2;path3
- set CLASSPATH=.;path1;path2;%CLASSPATH%
最後の例では、環境変数に設定されている値の前に、
カレントディレクトリと、
path1 および
path2 が追加されます。
set コマンドの
= の前後に空白をあけてはいけません。
3番目の例では、カレントディレクトリは探されません。
path1 、 path2
などには、ディレクトリ、 zip ファイル、
jar ファイルを指定できます。
- クラスを含む jar や zip の拡張子は
それぞれ .jar .zip でなければいけません。
- ディレクトリには複数の .class ファイルを含めることができます。
- パッケージに含まれるクラスを指定する場合には、
パッケージ名の先頭のディレクトリを指定します。
これ以外のファイルは無視されます。
-cp オプションは、
java の他、 javac や javadoc
などに共通のオプションです。