【Java】【No.12】クラスパスについて | yoppyのandroidアプリ開発者になるためのブログ

yoppyのandroidアプリ開発者になるためのブログ

このブログでは、ソフト開発部に所属していながらもソフト開発の経験がほぼゼロのペーペーが、Javaの勉強やアプリ開発を経て、android携帯電話のアプリ開発者のプロを目指す共同学習型のブログです。androidやJavaなど、プログラミングに興味のある方はぜひ見て下さいね!

またしても久し振りの更新になります。。
今回もカフェEcranよりお届けします。
今日は"クラスパス"の設定方法についてまとめました。

設定方法は2つあります。

①-classpathオプションの利用

コマンドラインでjavaのソースファイルをコンパイルするときや、実行するときに、

javac xxx.java
java xxx

というように入力していましたが、これはカレントディレクトリにxxx.javaや、
xxx.classが無いと実行できません。

上記コマンドは下記コマンドと同じ意味を持っています。

javac -classpath . xxx.java
(.はカレントディレクトリを指す)
java -classpath . xxx

もし、C:\abc\def という絶対パスにxxx.javaやxxx.classがあるのであれば、
カレントディレクトリがどこであろうと、下記コマンドを実行すれば問題なく
動作します。

javac -classpath C:\abc\def xxx.java

このようなクラスパスは、複数渡すことができるため、カレントディレクトリと
特定のディレクトリを一緒に指すことができます。従って、どちらにも同じファイル
xxx.javaがある場合は、先に記述したパスから探すため、先に記述した方で実行
されます。

javac -classpath .;C:\abc\def xxx.java

上記コマンドであれば、「カレントディレクトリ」と「特定のディレクトリ」ですが、
先に記述している「カレントディレクトリ」を優先して実行します。

②CLASSPATH環境変数の利用

続いて、CLASSPATH環境変数を使った場合のクラスパス設定方法を説明します。

下記設定を行えば、クラスパスのセットが可能です。

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

確認には、以下コマンドで確かめることが出来ます。

echo "CLASSPATH"

このようにCLASSPATH環境変数を設定すると、オプションでわざわざつけなくても、
自動的に参照してくれるようになります。