Java > javac タスク

更新日 2012-04-10
広告

Antのjavacタスクの使い方を紹介します。javacタスクを使うと、Javaプログラムをコンパイルできます。

javacタスクでコンパイルするサンプルプログラム Main.java を以下に記します。Log4jを利用しています。

package sample;

import org.apache.log4j.Logger;

public class Main {
    private static Logger logger;
}

ディレクトリとファイルの構成は、以下のようになっています。

  build.xml
  src/
    sample/
      Main.java
  lib/
    log4j-1.2.15.jar
  classes/
  • srcディレクトリ: ソースコードを配置するディレクトリ
  • libディレクトリ: ライブラリ(.jarファイル)を配置するディレクトリ
  • classesディレクトリ: コンパイル結果(.classファイル)を配置するディレクトリ

javacタスクで、Main.javaをコンパイルして、classes以下にコンパイル結果(.classファイル)を出力します。その際のbuild.xmlは、以下のようになります。

<project name="sample" default="compile" basedir=".">
  <property name="src" value="src"/>
  <property name="lib" value="lib"/>
  <property name="output" value="classes"/>

  <path id="class.path">
    <fileset dir="${lib}">
      <include name="**/*.jar"/>
    </fileset>
  </path>

  <target name="clear">
    <delete dir="${output}"/>
    <mkdir dir="${output}"/>
  </target>

  <target name="compile" depends="clear">
    <javac srcdir="${src}" destdir="${output}">
      <classpath refid="class.path"/>
    </javac>
  </target>
</project>

path要素で、クラスパスを設定しています。クラスパスの名前を"class.path"としています。libディレクトリ以下の.jarファイルを、全てクラスパスに設定しています。これで、log4jをクラスパスに通せます。

build.xmlの以下の部分は、classesディレクトリを毎回初期化(削除して作成)するための設定です。

  <target name="clear">
    <delete dir="${output}"/>
    <mkdir dir="${output}"/>
  </target>

javacタスクでは、srcdir属性でソースコードのディレクトリを、destdir属性でコンパイル結果の出力先を指定します。また、classpath要素で、先ほど設定したクラスパスを参照しています。

  <target name="compile" depends="clear">
    <javac srcdir="${src}" destdir="${output}">
      <classpath refid="class.path"/>
    </javac>
  </target>

antを実行すると、Main.javaがコンパイルされます。

$ ant
   :
BUILD SUCCESSFUL
Total time: 0 seconds

広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system