如何把JAVA程式封裝成EXE檔案

lizhongren發表於2012-11-16

如何把JAVA程式封裝成EXE檔案

如何把JAVA程式封裝成EXE檔案

可以把普通的Java程式做成真正的exe,也就是單一個exe就可以在沒有安裝JVM的機器上執行。這樣的工具常見的有JET和gcj.前者是收費的,而且做出來的exe還是需要一堆dll。推薦使用gcj.他有windows和Linux版,直接下載zip包,不需要安裝,裡面有不少例子,一些 build的批處理檔案。從原理來說gcj自己實現了JVM規範,也就是你編寫一個HelloWorld.java,其中的main方法為 System.out.println("foo");
當使用gcj把它做成exe(大約2M),執行這個exe時,會啟動裡面的一個小型jvm,在這上面跑HelloWorld。
其實,把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等


其實Java不像VB,Delphi只是一個語言,而是一個平臺。
jar是最常用的部署單元,做成exe沒什麼意思。
《將Java程式作成exe檔案的幾種方法》文章
一、exe4j。
    說明:exe4j可以將Jar檔案製作成exe檔案,但需jre支援,也可將Jar檔案放在外面。
    軟體性質:共享軟體
    下載地址:http://www.ej-technologies.com/products/exe4j/overview.html
二、JBuilder。
    說明:新版本的JBuilder可以直接把工程製作成各系統的可執行檔案,包括Windows系統。
    軟體性質:商業軟體
    下載地址:略。我是從eMule下載的。
三、NativeJ。
    說明:與exe4j功能類似。
    軟體性質:共享軟體
    下載地址:http://www.dobysoft.com/products/nativej/download.html
四、Excelsior JET。
    說明:可以直接將Java類檔案製作成exe檔案,除AWT和Swing及第三方圖形介面外可不需jre支援(Java5.0不行)。
    軟體性質:共享軟體
    下載地址:http://excelsior-usa.com/home.html
五、jshrink。
    說明:可將Jar檔案打包進exe檔案。同時具有混淆功能(這才是它的主要功能)。
    軟體性質:共享軟體
    下載地址:http://www.e-t.com/jshrink.html
六、InstallAnywhere。
    說明:打包工具,對Java打包最好用。可打包成各作業系統執行包。包括Windows系統。
    軟體性質:商業軟體。
    下載地址:http://www.zerog.com/
七、InstallShieldX。
    說明:與InstallAnywhere類似,但比InstallAnywhere功能強大。相對的,比較複雜,不易上手,我現在還沒學會。
    軟體性質:商業軟體。
    下載地址:http://www.installshield.com/

*******************************************************************************************

【Java開源打包工具】

IzPack 是一個 Java 安裝程式製作工具,能夠製作一些簡單的安裝程式。製作出來的安裝程式能在 Unix-like, MacOS X, Windows 等系統平臺上執行。

使用JSmooth將做好的JAR包裝成EXE。

launch4j是Java應用程式的Windows本地可執行檔案 (.exe) 封裝器。提供了本地彈出螢幕,應用程式圖示,JRE搜尋或使用繫結的JRE,啟動失敗反饋,傳遞命令列引數,ant指令碼。

VAInstall 是多平臺的安裝程式。你要包裝起來的軟體可以是可執行的 java class, Windows .EXE, Linux 可執行檔,或者是 UNIX shell 檔案。使用者可以選擇四種安裝的介面,graphic, xtra, text 或是 ansi。VAInstall 只需要很少的空間,他不會使用任何大的暫存檔案,而且還可以很容易使用反安裝功能。

Toolshed是一個既小又簡單的JAVA安裝製作工具。

AntInstaller通過XML檔案定義UI,用Ant做後臺。所以ANT所能做的事情AntInstaller同樣也勝任。

FreeInstaller能夠把JAVA程式打包成多種平臺下的應用程式比如UNIX, LINUX 和 Windows NT.

這個工具利用 ANT 來製作在 Windows, MacOS X, Unix 平臺上可執行的檔案,比如 exe,zip,jar。ROXES ANT Tasks 基於 GPL 釋出。

Mini Installer是用來構建JAVA安裝程式一個簡單類包。整個過程以指令碼為驅動,最後結果是一個獨特的JAR檔案。使用者可以通過雙擊來執行一個類似嚮導的安裝過程。

Antigen (Ant Installer Generator)這個工具結合一個ANT構建指令碼與一個GUI來把Java檔案打包成可執行的Jar檔案。它的主要目的是從Ant指令碼創造一個強大的圖形安裝工具。

Packlet是一個針對Java的簡單安裝工具。一個Packlet類似於一個zip或tgz檔案。它把應用程式打包成一個單一的可分解的壓縮檔案。Packlet檔案能夠在任何有安裝Java 2執行環境的機器上執行。

Java Service Wrapper可以把Java應用程式安裝成一個Windows NT服務或Unix Daemon.它同時還為應用程式提供日記功能,靈活的配置,可靠的執行效能,按需求重新啟動,簡化應用程式的安裝等,


Autojar 幫助從不同的inputs(如:自身classes,外部文件等)製作最小的Jar檔案。它從一個或多個給定的classes開始,依據位元組碼 (bytecode)遞迴搜尋相關聯的classes,然後從input文件中提取這些Classes,並把它們拷貝到output中. 最終的文件將只包含真正需要的classes. 因而能夠保持applet的大小並降低applet的載入時間或者讓應用程式獨立於第三方類庫。

MJAR(Managed Jar Framework)Java軟體分發/打包框架。它允許在相同VM內並行部署classloader分離的應用程式。MJAR使用Spring框架來管理內部元件。

********************************************************************************************
想要把java生成可執行檔案需要第三方軟體的支援,不過在沒有安裝JDK的機器上是不可能執行JAVA程式的,哪怕是編譯成為exe檔案。

將Java應用程式本地編譯為EXE的幾種方法(推薦使用JOVE和JET)
1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS檔案
編譯成EXE檔案。
2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe建立EXE檔案,這個軟體可以
從微軟的網站免費下載,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的語法如下:
jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]
3. Visual Cafe提供了一個能夠建立EXE檔案的本地編譯器。你需要安裝該光碟
上提供的EXE元件。
4. 使用InstallAnywhere建立安裝盤。
5. 使用IBM AlphaWorks提供的一個高效能Java編譯器,該編譯器可以從下面的
地址獲得:
http://www.alphaworks.ibm.com/tech/hpc
6. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個
測試版本:
http://www.excelsior-usa.com/jet.html
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合併了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede
已經不復存在了。
8. JToEXE
Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的
網頁上免費下載的,不過目前在該公司的主頁上找不到了。

相關文章