- Home ›
- Apache Antの使い方 ›
- Javaタスク(実行) ›
- HERE
javaタスク
ここではコンパイルされたプログラムをAntから実行する方法について見ていきます。「java」タスクを使います。
「Java」タスクでも数多くの属性が用意されていますが、基本となるのは下記の属性です。
| 属性 | 説明 | 必須 |
|---|---|---|
| classname | 実行するJavaのクラス | classnameかjarのどちらかが必須 |
| jar | 実行するjarファイルの場所(forkがtrueである必要があります) | classnameかjarのどちらかが必須 |
| classpath | 使用するクラスパス | × |
| fork | クラスの実行を別のVMで行います | × |
実行するクラスファイル名を「classname」属性で指定するか、または「jar」属性でjarファイルを指定してください。クラスファイル名は拡張子は付けずに指定します。(test.classだったらtest)。
また実行するクラスが置かれているディレクトリを「classpath」属性で指定します。
では実際に試してみましょう。今回の構成は下記のようになっています。
-sample5 build.xml | +--src test.java | +--class test.class
Antではコンパイルして実行させるようにしてみます。
コンパイルするプログラムファイルは下記です。
public class test{
public static void main(String args[]){
System.out.println("Antの実験です");
}
}
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="antsample" default="compile">
<target name="compile">
<javac srcdir="./src" destdir="./class" />
</target>
<target name="exec">
<java classname="test" classpath="./class" />
</target>
</project>
ではantを実行してみます。今回は「compile」ターゲットの後に「exec」ターゲットを実行します。
上記のようにコンパイル後に実行が行われます。
同じディレクトリが繰り返し使われていますので、プロパティを用いて下記のように記述してもいいと思います。
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="antsample" default="compile">
<property name="src" location="./src"/>
<property name="class" location="./class"/>
<target name="compile">
<javac srcdir="${src}" destdir="${class}" />
</target>
<target name="exec">
<java classname="test" classpath="${class}" />
</target>
</project>
depends属性を使う
またJavaを実行する前にコンパイルが必ず行われるようにするには、ターゲット要素の「depends」属性を使って下記のように記述しておけば、「exec」ターゲットだけ実行するだけでよくなります。
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="antsample" default="compile">
<property name="src" location="./src"/>
<property name="class" location="./class"/>
<target name="compile">
<javac srcdir="${src}" destdir="${class}" />
</target>
<target name="exec" depends="compile">
<java classname="test" classpath="${class}" />
</target>
</project>
このようにした場合は「exec」ターゲットだけを実行すれば、もしコンパイルが先に行われていなければまず「compile」ターゲットが実行されてから「exec」ターゲットを実行します。
( Written by Tatsuo Ikura )
JavaDrive