曾經利用GCJ編譯itext,並利用itext寫了很多小程式(現在可以從網上擷取的有pdfrotate,nup_pdf),這裡只是介紹下如何擷取GCJ的編譯環境。
GCJ是一個基於GNU協議的Java編輯器,支援以下編譯方式:
Java原始碼直接編譯成本地機器碼,windows平台下就是exe可執行程式(脫離JRE);
Java原始碼編譯成Java bytecode(class檔案),這個在windows平台下估計只有特殊情況才有意義,畢竟GCJ還不能完全相容J2SDK;
Java bytecode編譯成本地機器碼,和第一個功能類似;
也就是說你可以把java原始碼或者class檔案編譯成本地機器碼,這個是我們感興趣的主題。
Windows平台下獲得GCJ編譯環境的方法有一下三種:
1.到http://www.thisiscool.com/gcc_mingw.htm下載工具包,
http://www.thisiscool.net/gcc34-20040607.tar.bz2
http://www.thisiscool.net/gcc40-20051104.tar.bz2
至於用哪個版本好,根據個人情況了,這裡先不浪費時間了;
2.到http://sourceforge.net/下載獨立工具包,然後解壓縮到一個目錄
http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz
http://prdownloads.sourceforge.net/mingw/binutils-2.16.91-20060119-1.tar.gz
http://switch.dl.sourceforge.net/sourceforge/mingw/mingw-runtime-3.9.tar.gz
http://prdownloads.sourceforge.net/mingw/w32api-3.6.tar.gz
http://switch.dl.sourceforge.net/sourceforge/mingw/gcc-java-3.4.5-20060117-1.tar.gz
http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-lib.zip
http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip
把以上檔案都解壓縮到一個指定的目錄,如果提示覆蓋,點確定即可。
3.到http://gcc.gnu.org/java/下載最新版本的原始碼,自己做GCJ工具包(這個我沒有試過,主要嫌麻煩)
不管你使用以上三種的任何一種方法,都建議你另外下載一個工具,UPX(給可執行檔,exe或者dll減肥用的)
http://prdownloads.sourceforge.net/upx/upx125w.zip?download
至於把bin目錄添加到path,已經測試第一個helloworld程式這裡就先不浪費筆墨了。