1. 使用製做可執行 JAR 文件包html
下面就來看看什麼是 JAR 文件包吧:java
a) JAR 文件包shell
JAR 文件就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式。JAR 文件很是相似 ZIP 文件——準確的說,它就是 ZIP 文件,因此叫它文件包。JAR 文件與 ZIP 文件惟一的區別就是在 JAR 文件的內容中,包含了一個 META-INF/MANIFEST.MF 文件,這個文件是在生成 JAR 文件的時候自動建立的。舉個例子,若是咱們具備以下目錄結構的一些文件:windows
==api
`-- test工具
`-- Test.class性能
把它壓縮成 ZIP 文件 test.zip,則這個 ZIP 文件的內部目錄結構爲:測試
test.zip網站
`-- testui
`-- 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系統。
軟件性質:商業軟件。
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上曾經有過這個軟件,不知道如今是否是還在:
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自己的「編譯一次,處處運行」這種跨平臺的意思了。