wiki:waue/java_jar

Version 8 (modified by waue, 15 years ago) (diff)

--

製作 Executable JAR

製作可執行JAR的注意事項

初階小試

階層管理

可支援Hadoop的JAR打包方式

打包工具

族繁不及備載


  1. jar 如上介紹
  1. 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的

  1. exe4j

說明:exe4j可以將Jar文件製作成exe文件,但需jre支持,也可將Jar文件放在外面。

軟件性質:共享軟件

下載地址:http://www.ej-technologies.com/products/exe4j/overview.html

  1. JBuilder

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

軟件性質:商業軟件

下載地址:略。

  1. NativeJ

說明:與exe4j功能類似。

軟件性質:共享軟件

下載地址:http://www.dobysoft.com/products/nativej/download.html

  1. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。
  1. jshrink

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

軟件性質:共享軟件

下載地址:http://www.e-t.com/jshrink.html

  1. InstallAnywhere?

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

軟件性質:商業軟件。

下載地址:http://www.zerog.com/

  1. InstallShieldX

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

軟件性質:商業軟件。

下載地址:http://www.installshield.com

  1. 利用微軟的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組件。

  1. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:

http://www.alphaworks.ibm.com/tech/hpc

  1. Instantiations公司的JOVE

http://www.instantiations.com/jove/...ejovesystem.htm

JOVE公司合併了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede 已經不復存在了。

  1. JToEXE

Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。

主頁:http://www.bravozulu.com/ 根據精華區中的資料,下面這個FTP上曾經有過這個軟件,不知道現在是不是還在: ftp://race.dlut.edu.cn/pub/java/tools/jet

  1. IzPack?

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

  1. JSmooth

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

  1. launch4j

launch4j是Java應用程序的Windows本地可執行文件 (.exe) 封裝器。提供了本地彈出屏幕,應用程序圖標,JRE搜索或使用綁定的JRE,啟動失敗反饋,傳遞命令行參數,ant腳本。

  1. VAInstall

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

  1. Toolshed

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

  1. 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 發佈。

  1. Mini Installer Mini Installer是用來構建JAVA安裝程序一個簡單類包。整個過程以腳本為驅動,最後結果是一個獨特的JAR文件。用戶可以通過雙擊來執行一個類似嚮導的安裝過程。
  1. Antigen

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

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

  1. setup2go是個很好用的安裝製作程序,有中文版,且完全免費
  1. ms 的visual j ++ 可以的,因為windows有java1.1的運行庫,但不支持swing等api
  1. HotJava?,但是一旦將 Java編譯成exe後,你的這個Java程序就失去了Java本身的「編譯一次,到處運行」這種跨平台的意思了。

Reference by Java Gossip: 製作 Executable JAR

撰寫Java程式到這邊,相信您一定會有所疑問的是,編出來的.class檔案越來越多,難道要將這一堆.class檔案直接給想要執行程式的人嗎?在Windows下的話,有沒有辦法按一下檔案,就可以執行程式呢?

當然,實際上要交付程式時,並不是給一堆.class檔案,而是會將編譯好的.class檔包裝為一個Java Archive File,也就是副檔名為.jar的檔案,在JDK的bin目錄下,附帶有一個jar工具程式,您可以直接執行jar程式,看看它的提示訊息:

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/images/J6-015.JPG

直接執行jar工具程式,提示訊息中已清楚的說明如何使用jar程式,在這邊使用 文字編輯器製作 完成的文字編輯器為例,來示範如何將程式包裝為.jar的檔案,首先請建立一個jar目錄,並在其下建立bin與classes目錄,將您完成的文字編輯器程式放入classes中(包括套件的資料夾結構),待會將會產生的.jar則將放入bin中。 http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/images/J6-016.JPG

接著開啟文字模式,切換工作目錄至jar目錄下,然後鍵入以下的指令,表示將建立一個JNotePad.jar放到bin目錄中,來源是classes中的檔案,被放入的檔案將以/作為.jar檔案中的根目錄:

http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/images/J6-017.JPG

接著您的bin目錄中就會產生一個JNotePad.jar,要如何使用這個.jar檔案呢?.jar檔案中包括.class,基本上可以將.jar看作是一個特別的目錄,所以要使用.jar檔案中的.class檔案時,基本上也是指定Classpath,例如:

java -cp ./bin/JNotePad.jar onlyfun.caterpillar.JNotePad

接著您的文字編輯器就會啟動了,現在您不用將一堆.class檔案交付出去,只要交付這個JNotePad.jar就可以了。

然而,真的要指定Classpath這麼麻煩嗎?其實還有更方便的做法,製作一個Executable Jar檔案,指定讀取.jar檔案時要執行的Main-Class就可以了,這需要準備一個manifest.txt,當中寫下: http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/images/J6-018.JPG

注意寫完Main-Class之後,要按下Enter鍵新增一行,在Windows下這個動作是必要的,否則會發生無法讀取Main-Class屬性的錯誤。假設manifest.txt放在jar目錄下,接著如下執行指令: http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/images/J6-019.JPG

在.jar檔案製作出來後,您可以在執行java時指定-jar引數,以及您的.jar檔案,java程式會自動尋找Main-Class並執行,例如下達以下的指令:

java -jar bin/JNotePad.jar

接著您的文字編輯器就會啟動了,如果您的作業系統是Windows,由於安裝完JRE之後,會將.jar預設由javaw程式開啟,所以您可以直接在JNotePad.jar檔案上,使用滑鼠左鍵按兩下直接開啟程式來執行。