JAR(Java ARchive,Java 歸檔)是一種與平臺(tái)無(wú)關(guān)的文件格式,可將多個(gè)文件合成一個(gè)文件。用戶可將多個(gè) Java applet 及其所需組件(.class 文件、圖像和聲音)綁定到 JAR 文件中,而后作為單個(gè)的簡(jiǎn)單 HTTP(Hypertext Tranfer Protocal,超文本傳輸協(xié)議)事務(wù)下載到瀏覽器中,從而大大提高下載速度。JAR 格式也支持壓縮,從而減小了文件的大小,進(jìn)一步縮短下載時(shí)間。另外,applet 編寫(xiě)者也可在 JAR 文件中用數(shù)字簽名的方式簽寫(xiě)各項(xiàng)以確認(rèn)其來(lái)源。它用 Java 編寫(xiě),可與現(xiàn)有的 applet 代碼完全向后兼容且可充分?jǐn)U展。
JAR 文件就是 Java Archive File,顧名思意,它的應(yīng)用是與 Java 息息相關(guān)的,是 Java 的一種文檔格式。JAR 文件非常類似 ZIP 文件——準(zhǔn)確的說(shuō),它就是 ZIP 文件,所以叫它文件包。JAR 文件與 ZIP 文件唯一的區(qū)別就是在 JAR 文件的內(nèi)容中,包含了一個(gè) META-INF/MANIFEST.MF 文件,這個(gè)文件是在生成 JAR 文件的時(shí)候自動(dòng)創(chuàng)建的。
JAR文件是跨平臺(tái)的,所以不必關(guān)心涉及具體平臺(tái)的問(wèn)題。除了可以包括聲音和圖像文件以外,也可以在其中包括類文件。
涉及因特網(wǎng)應(yīng)用時(shí),JAR文件顯得特別有用。在JAR文件之前,Web瀏覽器必須重復(fù)多次請(qǐng)求Web服務(wù)器,以便下載完構(gòu)成一個(gè)“程序片”(Applet)的所有文件。除此以外,每個(gè)文件都是未經(jīng)壓縮的。但在將所有這些文件合并到一個(gè)JAR文件里以后,只需向遠(yuǎn)程服務(wù)器發(fā)出一次請(qǐng)求即可。同時(shí),由于采用了壓縮技術(shù),所以可在更短的時(shí)間里獲得全部數(shù)據(jù)。另外,JAR文件里的每個(gè)入口(條目)都可以加上數(shù)字化簽名(詳情參考Java用戶文檔)。
一個(gè)JAR文件由一系列采用Zip壓縮格式的文件構(gòu)成,同時(shí)還有一張“詳情單”,對(duì)所有這些文件進(jìn)行了描述(可創(chuàng)建自己的詳情單文件;否則,jar程序會(huì)為我們代勞)。在聯(lián)機(jī)用戶文檔中,可以找到與JAR詳情單更多的資料(詳情單的英語(yǔ)是“Manifest”)。
jar實(shí)用程序已與Sun的JDK配套提供,可以按我們的選擇自動(dòng)壓縮文件。請(qǐng)?jiān)诿钚姓{(diào)用它
JAR 文件格式以流行的 ZIP 文件格式為基礎(chǔ)。與 ZIP 文件不同的是,JAR 文件不僅用于壓縮和發(fā)布,而且還用于部署和封裝庫(kù)、組件和插件程序,并可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用來(lái)指示工具如何處理特定的 JAR。
一個(gè) JAR 文件可以用于:
□ 用于發(fā)布和使用類庫(kù)
□ 作為應(yīng)用程序和擴(kuò)展的構(gòu)建單元
□ 作為組件、applet 或者插件程序的部署單位
□ 用于打包與組件相關(guān)聯(lián)的輔助資源
JAR 格式允許您壓縮文件以提高存儲(chǔ)效率。
·傳輸平臺(tái)擴(kuò)展。 Java 擴(kuò)展框架(Java Extensions Framework)提供了向 Java 核心平臺(tái)添加功能的方法,這些擴(kuò)展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 開(kāi)發(fā)的擴(kuò)展例子)。
·包密封。 存儲(chǔ)在 JAR 文件中的包可以選擇進(jìn)行密封,以增強(qiáng)版本一致性和安全性。密封一個(gè)包意味著包中的所有類都必須在同一 JAR 文件中找到。
創(chuàng)建可執(zhí)行 JAR
創(chuàng)建一個(gè)可執(zhí)行 JAR 很容易。首先將所有應(yīng)用程序代碼放到一個(gè)目錄中。假設(shè)應(yīng)用程序中的主類是 com.mycompany.myapp.Sample 。您要?jiǎng)?chuàng)建一個(gè)包含應(yīng)用程序代碼的 JAR 文件并標(biāo)識(shí)出主類。為此,在某個(gè)位置(不是在應(yīng)用程序目錄中)創(chuàng)建一個(gè)名為 manifest 的文件,并在其中加入以下一行:
Main-Class: com.mycompany.myapp.Sample 然后,像這樣創(chuàng)建 JAR 文件:
jar cmf manifest ExecutableJar.jar application-dir
所要做的就是這些了,現(xiàn)在可以用java -jar執(zhí)行這個(gè)JAR文件ExecutableJar.jar。
一個(gè)可執(zhí)行的 JAR 必須通過(guò) menifest 文件的頭引用它所需要的所有其他從屬 JAR。如果使用了 -jar 選項(xiàng),那么環(huán)境變量 CLASSPATH 和在命令行中指定的所有類路徑都被 JVM 所忽略。
新聞熱點(diǎn)
疑難解答
圖片精選