- Home ›
- Apache Antの使い方 ›
- Javacタスク(コンパイル) ›
- HERE
クラスパスの指定
次にクラスパスをコンパイル時に指定したい場合の方法です。「classpath」属性を使って指定します。
<?xml version="1.0" encoding="Shift_JIS" ?> <project name="antsample" default="compile"> <target name="compile"> <javac srcdir="./src" destdir="./class" classpath="aaa.jar" /> </target> </project>
ファイルの指定は相対指定でも絶対指定でも可能です。また複数のファイルを指定する場合はセミコロン(;)で区切って指定して下さい。また特定のファイルだけではなく、ディレクトリでの指定も可能です。
<?xml version="1.0" encoding="Shift_JIS" ?> <project name="antsample" default="compile"> <target name="compile"> <javac srcdir="./src" destdir="./class" classpath="aaa.jar;bbb.jar" /> </target> </project>
では実際に試してみます。ここではJavaMailのプログラムをコンパイルしてみましょう。JavaMailのプログラムをコンパイルする場合には「mail.jar」及び「activation.jar」にクラスパスを設定しておく必要があります。
build.xmlが置かれているディレクトリ内に「src」ディレクトリを作成し、その中に先ほどの「msgsendsample.java」を設置します。またコンパイル後に作成されるクラスファイルの置き場所としてbuild.xmlが置かれているディレクトリ内に「class」ディレクトリを作成しました。
-sample4 build5.xml | +-- src msgsendsample.java | +-- class クラスファイルの置き場所
またクラスパスに「d:/java/javamail-1.3.3_01/mail.jar」と「d:/java/jaf-1.0.2/activation.jar」を指定します。絶対パスでの指定です。
build.xmlは下記の通りです。
<?xml version="1.0" encoding="Shift_JIS" ?> <project name="antsample" default="compile"> <target name="compile"> <javac srcdir="./src" destdir="./class" classpath="d:/java/javamail-1.3.3_01/mail.jar; d:/java/jaf-1.0.2/activation.jar" /> </target> </project>
ではAntを実行してみます。
クラスパスが必要な場合でも無事コンパイルが出来ました。
<classpath>要素を使った指定
クラスパスの指定は属性として指定する以外にも<classpath>要素を使って指定することも可能です。先ほどのbuild.xmlは下記のように書き換えることが出来ます。
<?xml version="1.0" encoding="Shift_JIS" ?> <project name="antsample" default="compile"> <target name="compile"> <javac srcdir="./src" destdir="./class"> <classpath> <pathelement path="d:/java/javamail-1.3.3_01/mail.jar" /> <pathelement path="d:/java/jaf-1.0.2/activation.jar" /> </classpath> </javac> </target> </project>
<classpath>要素を<javac>要素の子要素として定義しています。そしてさらに子要素として<pathelement>要素を使い、その「path」属性でクラスパスに追加したいファイルを定義しています。
では一応試しておきます。先ほどのbuildファイルをbuild4.xmlとして保存しAntを実行してみます。
実行結果は下記の通りです。
( Written by Tatsuo Ikura )