<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

    轉載:將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本身的“編譯一次,到處運行”這種跨平臺的意思了。

    posted on 2006-11-27 15:24 蘆葦 閱讀(497) 評論(0)  編輯  收藏 所屬分類: 其他
    主站蜘蛛池模板: 亚洲av无码成人精品国产 | 永久免费av无码网站韩国毛片| 日本亚洲免费无线码| 卡1卡2卡3卡4卡5免费视频| 亚洲&#228;v永久无码精品天堂久久| 亚洲第一区精品日韩在线播放| 亚洲AV中文无码字幕色三| 亚洲人成电影院在线观看| 亚洲国产欧美日韩精品一区二区三区| 免费国产在线精品一区| 久久精品一区二区免费看| 免费观看黄网站在线播放| 亚洲狠狠爱综合影院婷婷| 亚洲尹人香蕉网在线视颅| 亚洲精品无AMM毛片| 日韩精品无码免费专区网站| 波多野结衣在线免费视频| 亚洲国产av一区二区三区| 亚洲视频在线视频| 精品国产亚洲AV麻豆| 久久青草精品38国产免费| 成年在线网站免费观看无广告| 久久亚洲国产成人精品无码区| 中文字幕亚洲色图| 国产天堂亚洲精品| 久久午夜夜伦鲁鲁片免费无码影视| 国产精品高清全国免费观看| 亚洲AV无码乱码国产麻豆| 亚洲AV性色在线观看| 免费无遮挡无码永久视频| 亚洲AV日韩精品一区二区三区| 91亚洲精品第一综合不卡播放| 美女视频黄a视频全免费网站色 | 国产成人在线观看免费网站| 亚洲av日韩av无码| 国产亚洲精品第一综合| 麻豆视频免费观看| 国产偷国产偷亚洲清高动态图| 亚洲午夜无码久久久久小说| 日本高清免费观看| 亚洲精品视频免费观看|