jar簡介
from:JR
1. jar文件包
jar 文件就是 Java Archive File,顧名思意,它的應用是與 Java息息相關的,是 Java 的一種文檔格式。jar文件非常類似 zip文件??準確的說,它就是 zip文件,所以叫它文件包。jar文件與 zip文件唯一的區別就是在 jar 文件的內容中,包含了一個 META-INF/MANIFEST.MF 文件,這個文件是在生成 jar文件的時候自動創建的。舉個例子我們聊天系統的 ChatServer.jar所包含的目錄結果如下:
|---com
| ---softfz
| ---chat
| ---Server.class
|--- META-INF
| --- MANIFEST.MF
MANIFEST.MF文件的內容如下:
Manifest-Version: 1.0
Main-Class: com.softfz.chat.Server
1. 創建可執行的 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的創建命令和過程。可執行的 jar文件包和不可執行的 jar文件包都包含 MANIFEST。關鍵在于可執行 jar文件包的 MANIFEST,其內容包含了 Main-Class 一項。這在 MANIFEST 中書寫格式如下:
Main-Class: 可執行主類全名(包含包名)
MANIFEST.MF - 打包清單。它是打包的關鍵性文件,主要是設置執行入口類和支持庫的路徑,在運行Java應用程序時是要根據此文件中給出的信息來查找入口類和支持庫。
創建exe可執行程序
拋棄批處理文件(*.bat)
用批處理文件運行程序似乎不夠專業,雖然它足以完成運行任務。但習慣就象一種毒藥一旦染上就很難擺脫它的影響,Windows統治下的人們早已經習慣運行擴展名是EXE的程序,用*.bat他們就會感覺別扭。
我們可以用一個叫JavaLauncher的免費小程序來代替批處理文件去運行Java程序。JavaLauncher的下載網址是:
http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm
下載下來的文件是一個名JavaLauncher.zip的壓縮包,解壓后的目錄結構如下圖所示:
1. javaLauncher.zip目錄結構
在上圖的目錄中
? source目錄包含了JavaLauncher的源程序,是用C語言寫的
? changes.txt是新版的修改說明
? launch.exe是主程序
? launcher.cfg是配置文件
? readme.txt是一些說明和示例
我們只需要launch.exe、launcher.cfg兩個文件,將這兩個文件復制到打包文件所在的目錄。launcher.cfg是一個僅三行內容的文本文件,將它修改如下:
.
.\java1.4.2\jre\bin\javaw.exe
-jar ChatServer.jar
? 第一行設置指向JAR包ChatServer.jar的目錄,由于launch.exe和ChatServer.jar同在一個目錄,所以用“.”即當前目錄。
? 第二行設置指向jre\bin\javaw.exe的路徑。可以把將%JAVA_HOME%jre目錄復制到了java1.4.2子目錄中。這里可以用絕對路徑和相對路徑,絕對路徑可以直接用當前系統安裝的Jdk。
配置好launcher.cfg后,雙擊launch.exe即可運行java應用程序。
注意點:執行.exe文件時候會先找跟.exe文件同名的.cfg配置文件,如果沒有則會找launcher.cfg文件。所以可以在同一個文件目錄下有多個exe可執行文件,exe文件名可以修改,配置文件最好是跟exe文件同名。
美化圖標
launch.exe文件的圖標太單調了,讓我們給它換個好看點的。換程序的圖標需要用到一個免費的軟件:Resource Hacker,它有中文版,下載網址是:
http://www.users.on.net/johnson/resourcehacker/
用Resource Hacker來替換launch.exe的圖標的步驟如下:
(1)運行Resource Hacker,得到如下圖所示的窗口。
Resource Hacker的主界面
(2)單擊主菜單“文件→打開”,將launch.exe載入到程序中,結果如下圖所示。
1. 載入Lanunch.exe之后的界面
(3)如上圖,選擇左邊的“圖標→1→1030”,然后右鍵單擊“1030”項,選擇“替換資源…”。如下圖所示,在彈出窗口中單擊“打開新圖標文件”,選擇一個滿意的圖標,然后單擊“替換”按鈕。
附注:圖標文件可以是exe、dll、res、ico,該軟件可以從exe、dll、res抽取出圖標,本例選擇的是java的一個圖標文件JavaCup.ico。
1. 選擇圖標文件
(4)如下圖所示,選擇“文件→另存為”,取名ChatServer.exe。
保存修改
(5)最后的目錄如下圖所示,可見ChatServer.exe(也就是launch.exe改了個名稱)的圖標換成了Java的圖標。雙擊ChatServer.exe即可運行Java應用程序。
3、最后的打包
發送給用戶之前,通常要用WinZip或WinRAR將所有的文件全部打成一個壓縮包,然后用戶得到這個壓縮包后,將其解壓縮后即可運行程序。
另一種方式是用InstallShield、InstallAnyWhere這樣的安裝程序制作軟件來創建一個單一的setup.exe文件,它具有向導式的安裝界面,而且還可以往windows的程序欄插入菜單項,關于這些安裝程序制作軟件的具體使用請參閱相關書籍。