Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > Java基本 > 基本事項 −5.クラスパス
更新日:2005/7/16
基本事項−5.クラスパス
このページではクラスパスの概要、設定方法について説明します。
概要
クラスパスはSDKツールやJavaアプリケーションが該当のclassファイルを見つけるために使用するものです。java.lang、java.io などJavaのコアクラスは何の設定もせずに、プログラム実行時に読み込まれるようになっています。ただ、Javaコアクラス以外のクラス(独自作成のクラス、他社ベンダーのクラス)は読み込む際、SDKツールやJavaアプリケーションにclassファイルの位置を指定する必要があります。そのときにクラスパスを使用します。
設定方法
クラスパスの設定方法は2つあります。java、javacなどのSDKツールを使用する際、-classpathオプションを付ける方法と、CLASSPATH環境変数を設定する方法です。
-classpathオプション
コマンド -classpath クラスパス1;クラスパス2 クラスファイル;
コマンドではjava、javac、jdb、javahを指定できます。
java、jdbでは-classpathの省略形として-cpも使えます。
クラスパスはclassファイルのある位置を指定します。指定値としては、classファイル格納ディレクトリ、jarファイル、zipファイルが指定できます。jarファイル、zipファイルはいくつかのclassファイルを圧縮したアーカイブファイルです。クラスパスは複数指定することもできます。 Windows系では区切り文字として;(セミコロン)を、UNIX系では区切り文字として:(コロン)を使用します。
クラスファイルには実行するclassファイルを指定します。
【-classpathオプションの使用例】
D:\>java -classpath C:\JavaClass1 HelloWorld
//クラスパスにC:\JavaClass1を指定し、HelloWorldを実行しています。

C:\>java -classpath C:\JavaClass1;C:\JavaClass2 HelloWorld
//;(セミコロン)を使用し、クラスパスを複数指定しています。

C:\>java -classpath C:\JavaArchive1\archive.jar HelloWorld
//クラスパスにアーカイブファイル(archive.jar)を指定しています。
CLASSPATH環境変数
環境変数としてクラスパスを指定する方法です。一般には-classpathオプションの利用が推奨されています。-classpathオプションは実行するアプリケーションごとに有効であるのに対して、CLASSPATH環境変数はすべてのアプリケーションに影響を及ぼすためです。
【Windows系】
設定方法
set CLASSPATH=クラスパス1;クラスパス2
設定解除方法
set CLASSPATH=
起動時に有効にする方法
Windows95、98
autoexec.batファイルにCLASSPATH環境変数を設定
WindowsME
「プログラム」→「アクセサリ」→「システムツール」→「システム情報」→「ツール」→「システム設定ユーティリティ」→「環境」でCLASSPATH環境変数を設定
WindowsNT、2000、XP
「システムのプロパティ」→「詳細」→「環境変数」でCLASSPATH環境変数を設定
【UNIX系(bash)】
設定方法
CLASSPATH=クラスパス1:クラスパス2; export CLASSPATH
設定解除方法
unset CLASSPATH
起動時に有効にする方法
ホームディレクトリ配下の環境設定ファイル(.bashrc、.bashrc_profile、.profileなどOSにより異なる)に「設定方法」で実行するコマンドを記述する
【UNIX系(csh)】
設定方法
setenv CLASSPATH クラスパス1:クラスパス2
設定解除方法
unsetenv CLASSPATH
起動時に有効にする方法
ホームディレクトリ配下の環境設定ファイル(.cshrc、.loginなどOSにより異なる)に「設定方法」で実行するコマンドを記述する
【CLASSPATH環境変数の設定例】
C:\>set CLASSPATH=C:\JavaClass1;C:\JavaClass2
//Windows環境でクラスパスを;(セミコロン)で複数設定しています。

$ setenv CLASSPATH /usr/local/class1
//UNIX(csh)環境でクラスパスを設定しています。

$ CLASSPATH=/usr/local/class1; export CLASSPATH
//UNIX(bash)環境でクラスパスを設定しています。
設定の注意点
クラスパスの設定を行う場合、いくつかの注意すべき点があります。
CLASSPATH環境変数が設定されていないデフォルトの状態では、.(カレントディレクトリ)がクラスパスに設定されています。そのため、カレントディレクトリにあるclassファイルはクラスパスの設定をせず実行できます。
-classpathオプションを指定する場合、CLASSPATH環境変数の設定は無効になります。そのため、.(カレントディレクトリ)もクラスパスに含めたい場合は、-classpathオプションの指定に.(カレントディレクトリ)を含めます。
D:\>java -classpath .;C:\JavaClass1 HelloWorld
CLASSPATH環境変数を設定する場合、デフォルト時に設定されている.(カレントディレクトリ)は無効になります。そのため、.(カレントディレクトリ)をCLASSPATH環境変数に含めたい場合は、設定時に.(カレントディレクトリ)を含めます。ほとんどの場合において、.(カレントディレクトリ)も設定したほうがいいです。
C:\>set CLASSPATH=.;C:\JavaClass1
rt.jar、i18n.jarは-classpathオプション、CLASSPATH環境変数の状態に関わらずクラスパスに設定されています。rt.jarにはJavaコアクラスがi18n.jarには国際化関連クラスが格納されています。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道