AntとGCJによるNative Java アプリケーションの開発
まったく、えらそうなタイトルだ(w
単にEclipseでGCJを使おうと思った時にどうすればいいか調べていたんだが、結局普通にJavaでプログラミングをして最後の最後にAnt+GCJでnative codeに変換した方が楽チンだということに気づいたのでそのメモです。
GCJは、thisiscool.comから持ってくるのが吉。
いったんコンパイルしてjarにした後、gcjでコンパイルするという手順を取っているが、こうしておくと、ファイル数とか文字コードの問題を気にしなくてすむ。
<project name="swtapp" basedir="." default="build"> <property name="gcj.path" location="C:/thisiscool-gcc/gcc-ecj/bin" /> <property name="swt.path" location="C:/thisiscool-gcc/swt/win32/3218" /> <property name="src" location="src/main"/> <property name="bin" location="bin" /> <property name="dist" location="." /> <target name="init"> <tstamp /> </target> <target name="build" depends="init"> <jar basedir="${bin}" destfile="swtapp.jar" update="true"/> <exec executable="cmd" failonerror="true"> <arg value="/c" /> <arg value="${gcj.path}/gcj" /> <arg value="--main=swtapp.Main"/> <arg value="--classpath=${swt.path}/swt.jar"/> <arg value="-mwindows" /> <arg line="-s" /> <!-- stripを自動でかける --> <arg line="-Os" /> <!-- ファイルサイズ優先で最適化 --> <arg line="-o swtapp.exe" /> <arg value="swtapp.jar" /> <arg value="${swt.path}/libswt.a" /> <arg value="${swt.path}/libswtimgloader.a" /> </exec> </target> </project>
swtアプリだと、Hello World程度でも14MB近くあるなぁ……