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

6クラスパス

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

クラスパス

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

概要

クラスパスはコンパイルや実行する際に、Java実行環境がクラスファイルを参照するために使用します。java.lang、java.io などJavaAPIとしてあらかじめ用意されている基本的なコアクラスを使用する際はクラスパスを指定する必要はりません。それらは何の指定もせずに、Java実行環境に読み込まれます。

コアクラス以外のクラスファイルは、Java実行環境が読み込むためにその位置を指定する必要があります。その際にクラスパスを使用します。

使用方法

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

-classpathオプション

[コンパイルする際]
javac-classpath クラスパス1;クラスパス2 ソースファイル

[実行する際]
java-classpath クラスパス1;クラスパス2 クラスファイル

  • -classpathの省略形として-cpも使えます。
  • クラスパスは、ファイル格納ディレクトリ、jarファイル、zipファイルが指定できます。クラスパスは複数指定することもできます。 Windows系では区切り文字として;(セミコロン)を、UNIX系では区切り文字として:(コロン)を使用します。

-classpathオプションの使用例

#「C:\java」にあるクラスを参照して、「HelloWorld.java」をコンパイル
D:\>javac -classpath C:\java HelloWorld.java

#クラスパスを複数指定した例です。「C:\java」と「C:\sample」にあるクラスを参照して、「HelloWorld.java」をコンパイル
D:\>javac -classpath C:\java;C:\sample HelloWorld.java

#jarファイルを参照した例です。「C:\java\sample.jar」を参照して、「HelloWorld」クラスを実行
D:\>java -cp C:\java\sample.jar HelloWorld

CLASSPATH環境変数

環境変数としてクラスパスを指定する方法です。一般には-classpathオプションの利用が推奨されています。-classpathオプションは実行するアプリケーションごとに有効であるのに対して、CLASSPATH環境変数はすべてのアプリケーションに影響を及ぼすためです。

Windows系

設定方法

set CLASSPATH=クラスパス1;クラスパス2

設定解除方法

setCLASSPATH=

起動時に有効にする方法
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により異なる)に「設定方法」で実行するコマンドを記述する

CLASSPATH環境変数の設定例

#UNIX環境でクラスパス「/usr/local/class1」を指定
CLASSPATH /usr/local/class1; export CLASSPATH

#クラスパスを複数指定した例です。クラスパスに「/usr/local/class1」と「/usr/local/class2」を指定
CLASSPATH /usr/local/class1:/usr/local/class2; export CLASSPATH

#jarファイルを指定した例です。クラスパスに「/usr/local/class1/sample.jar」を指定
CLASSPATH /usr/local/class1/sample.jar; export CLASSPATH

設定の注意点

クラスパスの設定を行う場合、いくつかの注意すべき点があります。

  • CLASSPATH環境変数が設定されていないデフォルトの状態では、(カレントディレクトリ)がクラスパスに設定されています。そのため、カレントディレクトリにあるclassファイルはクラスパスの設定をせず実行できます。
  • -classpathオプションを指定する場合、CLASSPATH環境変数の設定は無効になります。そのため、(カレントディレクトリ)もクラスパスに含めたい場合は、-classpathオプションの指定に(カレントディレクトリ)を含めます。
    D:\>java -classpath .;C:\sample HelloWorld
  • CLASSPATH環境変数を設定する場合、デフォルトで設定されている(カレントディレクトリ)は無効になります。そのため、(カレントディレクトリ)をCLASSPATH環境変数に含めたい場合は、設定時に(カレントディレクトリ)を含める必要があります。
    D:\>set CLASSPATH=.;C:\sample

6クラスパス