介紹
JAR(Java Archive,Java 歸檔文件)是與平臺無關(guān)的文件格式,它允許將許多文件組
合成一個壓縮文件。為 J2EE 應(yīng)用程序創(chuàng)建的 JAR 文件是 EAR 文件(企業(yè) JAR 文件)。
JAR 文件格式以流行的 ZIP 文件格式為基礎(chǔ)。與 ZIP 文件不同的是,JAR 文件不僅用于
壓縮和發(fā)布,而且還用于部署和封裝庫、組件和插件程序,并可被像編譯器和 JVM 這樣的
工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用來指示工具如何
處理特定的 JAR。
一個 JAR 文件可以用于
□ 用于發(fā)布和使用類庫
□ 作為應(yīng)用程序和擴(kuò)展的構(gòu)建單元
□ 作為組件、applet 或者插件程序的部署單位
□ 用于打包與組件相關(guān)聯(lián)的輔助資源
JAR 文件格式提供了許多優(yōu)勢和功能,其中很多是傳統(tǒng)的壓縮格式如 ZIP 或者 TAR 所
沒有提供的。它們包括:
·安全性。
可以對 JAR 文件內(nèi)容加上數(shù)字化簽名。這樣,能夠識別簽名的工具就可以有選擇地為
您授予軟件安全特權(quán),這是其他文件做不到的,它還可以檢測代碼是否被篡改過。
·減少下載時間。
如果一個 applet 捆綁到一個 JAR 文件中,那么瀏覽器就可以在一個 HTTP 事務(wù)中下載
這個 applet 的類文件和相關(guān)的資源,而不是對每一個文件打開一個新連接。
·壓縮。
JAR 格式允許您壓縮文件以提高存儲效率。
·傳輸平臺擴(kuò)展。
Java 擴(kuò)展框架(Java Extensions Framework)提供了向 Java 核心平臺添加功能的方法
,這些擴(kuò)展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 開發(fā)的擴(kuò)展例子)。
·包密封。
存儲在 JAR 文件中的包可以選擇進(jìn)行密封,以增強版本一致性和安全性。密封一個包
意味著包中的所有類都必須在同一 JAR 文件中找到。
·包版本控制。
一個 JAR 文件可以包含有關(guān)它所包含的文件的數(shù)據(jù),如廠商和版本信息。
·可移植性。
處理 JAR 文件的機(jī)制是 Java 平臺核心 API 的標(biāo)準(zhǔn)部分。
JAR在手機(jī)電子書的應(yīng)用
JAVA手機(jī)電子書的格式一般為JAR和JAD,其中JAD文件是一個說明文件,描述jar文件
的信息。部分手機(jī)不支持直接讀取JAR(這是手機(jī)安全策略引起的),這時則需要JAD文件
。這樣的手機(jī)只在少數(shù)。java運行在java虛擬機(jī)之上,也就是JVM,而很多低端機(jī)型也可以
支持java,因此就注定了java格式的適用范圍相當(dāng)廣泛。由于java可以提供豐富的交互行為
,因此在支持圖文,多媒體方面做的最為優(yōu)秀,另外,閱讀器和文本被打包在一起(jar)
,因此只需安裝即可閱讀,無需另外安裝閱讀器或者下載電子書。
手機(jī)和以前的電子書閱讀設(shè)備相比,其最大優(yōu)勢就是方便,能隨身攜帶。而其不足之處
就是屏幕閱讀限制,以及可閱讀資源少。目前的手機(jī)設(shè)計,呈現(xiàn)大小兩極分化的局面,一種
趨勢是越來越小,走靈巧、精致之路,另一種趨勢則是越來越大,走功能豐富與完善之路,
向PDA靠攏,無疑只有這種趨勢才適合手機(jī)電子書的發(fā)展。而對目前大部分用戶而言,以每
屏顯示幾行的手機(jī)來閱讀上萬字的電子書,仍然有很大的不便。
目前能制作電子書的軟件有掌上書院開發(fā)的mBookMaker等,想將自己的文字轉(zhuǎn)換為電
子書的朋友不妨一試。
由于不同品牌的手機(jī)硬軟件不同,并非所有的手機(jī)都能支持手機(jī)電子書。相對而言,諾
基亞,摩托羅拉等品牌手機(jī),只要能支持JAVA,那就一定有適合的電子書。
但也有一些已經(jīng)非常優(yōu)秀的JAR讀書軟件,可以直接讀取TXT.HTML.UMD等格式的小說
。例如Anyview3.0就是非常不錯的手機(jī)電子書軟件
制作手機(jī)電子書需要一定的耐心,如果你沒有耐心,也可以直接去一些提供已經(jīng)做好的
常見的 jar 工具用法
jar cf jar-file input-file...
用一個單獨的文件創(chuàng)建一個 JAR 文件
jar cf jar-file dir-name
用一個目錄創(chuàng)建一個 JAR 文件
jar cf0 jar-file dir-name
創(chuàng)建一個未壓縮的 JAR 文件
jar uf jar-file input-file...
更新一個 JAR 文件
jar tf jar-file
查看一個 JAR 文件的內(nèi)容
jar xf jar-file
提取一個 JAR 文件的內(nèi)容
jar xf jar-file archived-file...
從一個 JAR 文件中提取特定的文件
java -jar app.jar
運行一個打包為可執(zhí)行 JAR 文件的應(yīng)用程序