將Java程式作成exe檔案的N種方法

來源:互聯網
上載者:User
將Java程式作成exe檔案的N種方法
本文是經過大量地搜尋而整理的,有些下載串連可能已經失效,有些軟體作者已經停止開發,對文中提到的一些方法沒有去求證過,整理出來只是為了方便大家,若有不妥之處或對本文沒有提到的工具和方法有任何異議,請你指正和補充在後面!

1.  使用製作可執行 JAR 檔案包


下面就來看看什麼是 JAR 檔案包吧:

a) JAR 檔案包

JAR 檔案就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式。JAR 檔案非常類似 ZIP 檔案——準確的說,它就是 ZIP 檔案,所以叫它檔案包。JAR 檔案與 ZIP 檔案唯一的區別就是在 JAR 檔案的內容中,包含了一個 META-INF/MANIFEST.MF 檔案,這個檔案是在產生 JAR 檔案的時候自動建立的。舉個例子,如果我們具有如下目錄結構的一些檔案:

  ==

  `-- test

    `-- Test.class

把它壓縮成 ZIP 檔案 test.zip,則這個 ZIP 檔案的內部目錄結構為:

  test.zip

  `-- test

    `-- Test.class

如果我們使用 JDK 的 jar 命令把它打成 JAR 檔案包 test.jar,則這個 JAR 檔案的內部目錄結構為:

  test.jar

  |-- META-INF

  |  `-- MANIFEST.MF

  `-- test

    `--Test.class

b) 建立可執行檔 JAR 檔案包

製作一個可執行檔 JAR 檔案包來發布你的程式是 JAR 檔案包最典型的用法。

Java 程式是由若干個 .class 檔案組成的。這些 .class 檔案必鬚根據它們所屬的包不同而分級分目錄存放;運行前需要把所有用到的包的根目錄指定給 CLASSPATH 環境變數或者 java 命令的 -cp 參數;運行時還要到控制台下去使用 java 命令來運行,如果需要直接雙擊運行必須寫 Windows 的批次檔 (.bat) 或者 Linux 的 Shell 程式。因此,許多人說,Java 是一種方便開發人員苦了使用者的程式設計語言。

其實不然,如果開發人員能夠製作一個可執行檔 JAR 檔案包交給使用者,那麼使用者使用起來就方便了。在 Windows 下安裝 JRE (Java Runtime Environment) 的時候,安裝檔案會將 .jar 檔案對應給 javaw.exe 開啟。那麼,對於一個可執行檔 JAR 檔案包,使用者只需要雙擊它就可以運行程式了,和閱讀 .chm 文檔一樣方便 (.chm 文檔預設是由 hh.exe 開啟的)。那麼,現在的關鍵,就是如何來建立這個可執行檔 JAR 檔案包。

建立可執行檔 JAR 檔案包,需要使用帶 cvfm 參數的 jar 命令,同樣以上述 test 目錄為例,命令如下:

jar cvfm test.jar manifest.mf test

這裡 test.jar 和 manifest.mf 兩個檔案,分別是對應的參數 f 和 m,其重頭戲在 manifest.mf。因為要建立可執行檔 JAR 檔案包,光靠指定一個 manifest.mf 檔案是不夠的,因為 MANIFEST 是 JAR 檔案包的特徵,可執行檔 JAR 檔案包和不可執行檔 JAR 檔案包都包含 MANIFEST。關鍵在於可執行 JAR 檔案包的 MANIFEST,其內容包含了 Main-Class 一項。這在 MANIFEST 中書寫格式如下:

Main-Class: 可執行主類全名(包含包名)

例如,假設上例中的 Test.class 是屬於 test 包的,而且是可執行檔類 (定義了 public static void main(String[]) 方法),那麼這個 manifest.mf 可以編輯如下:

Main-Class: test.Test <斷行符號>

這個 manifest.mf 可以放在任何位置,也可以是其它的檔案名稱,只需要有 Main-Class: test.Test 一行,且該行以一個斷行符號符結束即可。建立了 manifest.mf 檔案之後,我們的目錄結構變為:

  ==

  |-- test

  |  `-- Test.class

  `-- manifest.mf

這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來建立 JAR 檔案包。也就是在分類樹中使用“==”表示的那個目錄中,使用如下命令:

jar cvfm test.jar manifest.mf test

之後在“==”目錄中建立了 test.jar,這個 test.jar 就是執行的 JAR 檔案包。運行時只需要使用 java -jar test.jar 命令即可。

需要注意的是,建立的 JAR 檔案包中需要包含完整的、與 Java 程式的包結構對應的目錄結構,就像上例一樣。而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 檔案包之前可以使用 java <類名> 來運行這個類,即在上例中 java test.Test 是可以正確啟動並執行 (當然要在 CLASSPATH 正確的情況下)。

c) 運行jar,不想出現dos視窗,很簡單,寫個自動批處理:
start javaw -jar xxx.jar

2.  JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本: http://www.excelsior-usa.com/jet.html
用法:
例如你的檔案為test.java
用javac產生test.class
然後用
jc test.class+gui
這樣就可以變成百分百的exe檔案了。
還有一些參數可以把class檔案編譯成dll

注意:加個參數+gui,只是不顯示dos視窗,而不是完全的可以獨立運行的exe,還是需要jre的

3. exe4j

      說明:exe4j可以將Jar檔案製作成exe檔案,但需jre支援,也可將Jar檔案放在外面。

      軟體性質:共用軟體

      :http://www.ej-technologies.com/products/exe4j/overview.html

4. JBuilder

      說明:新版本的JBuilder可以直接把工程製作成各系統的可執行檔,包括Windows系統。

      軟體性質:商業軟體

      :略。

5. NativeJ

      說明:與exe4j功能類似。

      軟體性質:共用軟體

      :http://www.dobysoft.com/products/nativej/download.html

6. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS檔案編譯成EXE檔案。

7. jshrink

      說明:可將Jar檔案打包進exe檔案。同時具有混淆功能(這才是它的主要功能)。

      軟體性質:共用軟體

      :http://www.e-t.com/jshrink.html

8. InstallAnywhere

      說明:打包工具,對Java打包最好用。可打包成各作業系統運行包。包括Windows系統。

      軟體性質:商業軟體。

      :http://www.zerog.com/

9. InstallShieldX

      說明:與InstallAnywhere類似,但比InstallAnywhere功能強大。相對的,比較複雜,不易上手,我現在還沒學會。

      軟體性質:商業軟體。

      :http://www.installshield.com

10.  利用微軟的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]

11 . Visual Cafe提供了一個能夠建立EXE檔案的本地編譯器。你需要安裝該光碟片上提供的EXE組件。

12. 使用IBM AlphaWorks提供的一個高效能Java編譯器,該編譯器可以從下面的地址獲得:
           http://www.alphaworks.ibm.com/tech/hpc

13. Instantiations公司的JOVE
            http://www.instantiations.com/jove/...ejovesystem.htm 
        JOVE公司合并了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede 已經不複存在了。

14. JToEXE
     Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的首頁上找不到了。
首頁:http://www.bravozulu.com/
根據精華區中的資料,下面這個FTP上曾經有過這個軟體,不知道現在是不是還在:
ftp://race.dlut.edu.cn/pub/java/tools/jet

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

16. JSmooth
     使用JSmooth將做好的JAR封裝成EXE。

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

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

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

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

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

22.ROXES ANT Tasks

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

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

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

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

26. setup2go是個很好用的安裝製作程式,有中文版,且完全免費

27. ms 的visual j ++ 可以的,因為windows有java1.1的運行庫,但不支援swing等api

28. HotJava,但是一旦將 Java編譯成exe後,你的這個Java程式就失去了Java本身的“編譯一次,到處運行”這種跨平台的意思了。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.