swt-3.1.2 を MinGW 環境の gcj で使えるようにビルド
java プログラマからは Sun の java 完全互換じゃないから嫌われて,C++ プログラマからは java だからって理由で嫌われる.そんな薄幸の gcj を使ってみる話です.
MinGW の gcj にはまだ awt が実装されていないので GUI アプリケーションが作れません.というわけで swt を gcj 用にビルドして使いましょう.
ビルドと言っても MinGW 環境でソースからビルドするはけではなくて,JNI 部分は swt の dll からインポートライブラリを抽出してやるだけです. Java 部分は gcj でビルドし .jar と .a ファイルをビルドします.
- http://cefiro.homelinux.org/memo/2006-06-11/ - ビルド手順
- swt-3.1.2-win32-win32-x86-gcj.patch - ビルドに使うパッチ
- swt-3.1.2-win32-win32-x86-gcj.tar.gz - ビルドされたバイナリパッケージ
インストールすると以下のような感じに gcj で swt がリンクできるようになります.
% gcj --classpath=/usr/local/share/java/ext/swt.jar --main=TestSWT \ -o TestSWT.exe -L/usr/local/lib/ -lswt -mwindows