Javaに関する様々な情報をご紹介します。

6クラスパス

Javaに関する様々な情報をご紹介します。

クラスパス

このページではクラスパスの概要、設定方法について説明します。

概要

クラスパスはSDKツールやJavaアプリケーションが該当のclassファイルを見つけるために使用するものです。java.lang、java.io などJavaのコアクラスは何の設定もせずに、プログラム実行時に読み込まれるようになっています。ただ、Javaコアクラス以外のクラス(独自作成のクラス、他社ベンダーのクラス)は読み込む際、SDKツールやJavaアプリケーションにclassファイルの位置を指定する必要があります。そのときにクラスパスを使用します。

設定方法

クラスパスの設定方法は2つあります。java、javacなどのSDKツールを使用する際、-classpathオプションを付ける方法と、CLASSPATH環境変数を設定する方法です。

-classpathオプション

コマンド -classpath クラスパス1;クラスパス2 クラスファイル;

  • コマンドではjavajavacjdbjavahを指定できます。
  • javajdbでは-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には国際化関連クラスが格納されています。

6クラスパス