可以把普通的Java程式做成真正的exe,也就是單一個exe就可以在沒有安裝JVM的機器上運行。這樣的工具常見的有JET和gcj.前者是收費的,而且做出來的exe還是需要一堆dll我比較推薦使用gcj. http://www.thisiscool.com/gcc_mingw.htm他有windows和Linux版,直接下載zip包,不需要安裝,裏面有不少例子,一些build的批次檔案。
從原理來說gcj自己實現了JVM規範,也就是你編寫一個HelloWorld.java,其中的main方法為System.out.println("foo");當使用gcj把它做成exe(大約2M),運行這個exe時,會啟動裏面的一個小型jvm,在這上面跑HelloWorld
//曾有人把整個eclipse ide用gjc做成了linux gtk下的native程式
至於圖示,我一年多前用gcj時似乎不支援,不過好像有不少win32的程式可以抽取和更改exe的圖示
其實,把Java做成純exe實在是 吃力不討好 。 有很多限制,檔又大
我比較傾向另幾種做法:
. 使用InstallAnywhere等工具,製作一個exe的安裝包用戶可以選擇使用他機器上的JRE或是這個安裝包內的JRE來運行程式這是很常見的一種做法,如JBuilder就是這麼做的。這樣的好處是不要求對方機器上裝有JRE,而且你原來的程式不需要任何改動。
InstallAnywhere中一個壓縮的JRE大概是8M
. 製作成可執行的jar,也就是在META-INF的MANIFEST檔制定Main-Class可以通過命令行java -jar jarfile.jar來執行,windows默認的把*.jar使用javaw -jar打開,所以有些機器上可以直接雙擊jar運行。
. 制作偽exe,其實和上一種做法是一樣的,只不過做成exe,調用系統的java.exe來運行它,這樣的工具有nativeJ,exe4j等
btw,像JET/gcj這樣的技術是很先進的,.NET在運行機制上和Java類似,但到現在還是沒有成熟的做成真正exe的工具一定程度上也說明微軟對.NET的信心,以及把基於運行時的軟體做成純exe的意義不大
剛接觸java很容易產生你這樣的想法等你Java瞭解多了,就會感覺到Java不像VB,Delphi只是一個語言,而是一個平臺。
jar是最常用的部署單元,做成exe沒什麼意思。
- Apr 26 Tue 2005 05:00
將java程式編譯成exe檔
close
全站熱搜
留言列表
禁止留言