Java の ant の使い方
Menu Menuant は、Java 用の build tool である。make に相当する。
build とは、作成したプログラムをまとめて一つにする。コンパイルやlinkを行う。
Java の場合は、jar を構成するのに使う。
Eclipse では標準では jar を作れないし、単にJavaを動かすだけに Eclipse のプロジェクトを作るのは面倒。
なので、build.xmlとmanifestを用意して ant bundle として構成できるようにする。
jar
tar や zip と同じように Java のファイルをまとめたもの。jar コマンドで操作する。jar には、通常は .class や、実行に必要なデータを入れるが、ソースコードも含めることが出来る。Java は .class から、ほぼ完全に Java sourceを復元できるので、ソースコードを隠す意味はほとんどない。
manifest
jar file を java -jar jar-file.jar で実行した時に、どのクラスのstatic void main(String []) を実行するかを指定する。
Manifest-Version: 1.0 Created-By: 0.1.0 (Shinji KONO @ University of the Ryukyus) Main-Class: test.TestManagerなどと記述する。manifest を複数作ることが出来る。
build.xml
build.xml は、Makefile と違い、Project毎の差があまりないひな型を作っておくのが良い。Java ソースコード中のコメントは UTF8 を使用する。(Eclipse でも、そのように設定する)ただし、コメントは本来「英語で記述」するのが礼儀。
例えば、
build.xml のひな型 src / bin などを使い分けるのが便利。class ファイルと java を分離する。
個々の XML Entity や property の意味は複雑怪奇。頑張って調べるしかない。
おまけ - jar 中にデータファイルを含め、Java からアクセスする方法
getClass().getResource(filename) で URL を取る。
public boolean getResource(String filename) { System.out.println("try to get resource ... "+filename); try { URL rsrc = getClass().getResource(filename); if (rsrc==null) throw new IOException(); InputStream in = rsrc.openStream(); return true; } catch (IOException e) { System.out.println("failed."); return false; } }以下のように呼び出します。
if (!sat.p.getResource("/data/example"))このファイルは、
<target name="jar" depends="build" > <mkdir dir="build/data"/> <mkdir dir="jar"/> <copy todir="build/data" file="src/data/README" /> <copy todir="build/data" file="src/data/example" /> <jar jarfile="jar/Test.jar" basedir="build" manifest="src/Test.mf"/> </target>などのように ant の build.xml で、jar file に入る。