JAR(計算機檔案格式)

JAR(計算機檔案格式)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

軟體領域,JAR檔案(Java歸檔,英語:Java Archive)是一種軟體包檔案格式,通常用於聚合大量的Java類檔案、相關的元數據和資源(文本、圖片等)檔案到一個檔案,以便開發Java平台套用軟體或庫。

JAR檔案是一種歸檔檔案,以ZIP格式構建,以.jar為檔案擴展名。用戶可以使用JDK自帶的jar命令創建或提取JAR檔案。也可以使用其他zip壓縮工具,不過壓縮時zip檔案頭裡的條目順序很重要,因為Manifest檔案常需放在首位。JAR檔案內的檔案名稱是Unicode文本。

基本介紹

基本含義,相關特點,包密封,包版本控制,可移植性,使用範圍,運行相關,相關套用,套用,程式,工具用法,

基本含義

JAR 檔案格式以流行的 ZIP 檔案格式為基礎。與 ZIP 檔案不同的是,JAR 檔案不僅用於壓縮和發布,而且還用於部署和封裝庫、組件和外掛程式程式,並可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的檔案,如 manifests 和部署描述符,用來指示工具如何處理特定的 JAR。

相關特點

JAR 檔案格式提供了許多優勢和功能,其中很多是傳統的壓縮格式如 ZIP 或者 RAR 所沒有提供的。它們包括:
安全性 可以對 JAR 檔案內容加上數位化簽名。這樣,能夠識別簽名的工具就可以有選擇地為您授予軟體安全特權,這是其他檔案做不到的,它還可以檢測代碼是否被篡改過。
減少下載時間 如果一個 applet 捆綁到一個 JAR 檔案中,那么瀏覽器就可以在一個 HTTP 事務中下載這個 applet 的類檔案和相關的資源,而不是對每一個檔案打開一個新連線。
壓縮 JAR 格式允許您壓縮檔案以提高存儲效率。
傳輸平台擴展 Java 擴展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,這些擴展是用 JAR 檔案打包的(Java 3D 和 JavaMail 就是由 Sun 開發的擴展例子)。

包密封

存儲在 JAR 檔案中的包可以選擇進行密封,以增強版本一致性和安全性。密封一個包意味著包中的所有類都必須在同一 JAR 檔案中找到。

包版本控制

一個 JAR 檔案可以包含有關它所包含的檔案的數據,如廠商和版本信息。

可移植性

處理 JAR 檔案的機制是 Java 平台核心 API 的標準部分。

使用範圍

一個 JAR 檔案可以用於
□ 用於發布和使用類庫
□ 作為應用程式和擴展的構建單元
□ 作為組件、applet 或者外掛程式程式的部署單位
□ 用於打包與組件相關聯的輔助資源

運行相關

可執行的JAR
一個可執行的jar 檔案是一個自包含的 Java 應用程式,它存儲在特別配置的JAR 檔案中,可以由 JVM 直接執行它而無需事先提取檔案或者設定類路徑。要運行存儲在非可執行的 JAR 中的應用程式,必須將它加入到您的類路徑中,並用名字調用應用程式的主類。但是使用可執行的 JAR 檔案,我們可以不用提取它或者知道主要入口點就可以運行一個應用程式。可執行 JAR 有助於方便發布和執行 Java 應用程式。
創建可執行 JAR
創建一個可執行 JAR 很容易。首先將所有應用程式代碼放到一個目錄中。假設應用程式中的主類是 com.mycompany.myapp.Sample 。您要創建一個包含應用程式代碼的 JAR 檔案並標識出主類。為此,在某個位置(不是在應用程式目錄中)創建一個名為 manifest 的檔案,並在其中加入以下一行:
Main-Class: com.mycompany.myapp.Sample //結尾鍵入回車
然後,像這樣創建 JAR 檔案:
jar cmf manifest ExecutableJar.jar application-dir
所要做的就是這些了 -- 可以用 java -jar 執行這個 JAR 檔案 ExecutableJar.jar。
一個可執行的 JAR 必須通過 manifest 檔案的頭引用它所需要的所有其他從屬 JAR。如果使用了 -jar 選項,那么環境變數 CLASSPATH 和在命令行中指定的所有類路徑都被 JVM 所忽略。
啟動可執行 JAR
既然我們已經將自己的應用程式打包到了一個名為 ExecutableJar.jar 的可執行 JAR 中了,那么我們就可以用下面的命令直接從檔案啟動這個應用程式:
java -jar ExecutableJar.jar
META-INF 目錄
大多數 JAR 檔案包含一個 META-INF 目錄,它用於存儲包和擴展的配置數據,如安全性和版本信息。Java 2 平台識別並解釋 META-INF 目錄中的下述檔案和目錄,以便配置應用程式、擴展和類裝載器:
MANIFEST.MF。這個 manifest 檔案定義了與擴展和包相關的數據。
INDEX.LIST。 這個檔案由 jar 工具的新選項 -i 生成,它包含在應用程式或者擴展中定義的包的位置信息。它是 JarIndex 實現的一部分,並由類裝載器用於加速類裝載過程。
xxx.SF。 這是 JAR 檔案的簽名檔案。占位符 xxx標識了簽名者。
xxx.DSA。 與簽名檔案相關聯的簽名程式塊檔案,它存儲了用於簽名 JAR 檔案的公共簽名。

相關套用

套用

JAVA手機電子書的格式一般為JAR和JAD,其中JAD檔案是一個說明檔案,描述jar檔案的信息。部分手機不支持直接讀取JAR(這是手機安全策略引起的),這時則需要JAD檔案。這樣的手機只在少數。JAVA運行在JAVA虛擬機之上,也就是JVM,而很多低端機型也可以支持JAVA,因此就注定了JAVA格式的適用範圍相當廣泛。由於JAVA可以提供豐富的互動行為,因此在支持圖文,多媒體方面做的最為優秀,另外,閱讀器和文本被打包在一起(jar),因此只需安裝即可閱讀,無需另外安裝閱讀器或者下載電子書。

程式

JAVA平台由於在手機上廣泛套用,使得擴展名為jar的Kjava遊戲成為手機遊戲市場上最大的家族,直接傳入手機直接安裝即可。
眾所周知,JAVA是一種跨平台的程式設計語言。由於其高可移植性、簡單、可靠、安全等諸多優異性能,已經成為最受歡迎、最有影響力的程式語言之一。
JAVA程式的短小精幹和其跨平台的先天特點,使其成為眾多開放或半開放式手機擴展自身功能的最佳選擇。因此市場上流行的手機大多支持JAVA應用程式了。

工具用法

為了用 JAR 檔案執行基本的任務,要使用作為Java Development Kit 的一部分提供的 Java Archive Tool ( jar 工具)。用 jar 命令調用 jar 工具。表 1 顯示了一些常見的套用:
常見的 jar 工具用法
功能
命令
用一個單獨的檔案創建一個 JAR 檔案
jar cf jar-file input-file...
用一個目錄創建一個 JAR 檔案
jar cf jar-file dir-name
創建一個未壓縮的 JAR 檔案
jar cf0 jar-file dir-name
更新一個 JAR 檔案
jar uf jar-file input-file...
查看一個 JAR 檔案的內容
jar tf jar-file
提取一個 JAR 檔案的內容
jar xf jar-file
從一個 JAR 檔案中提取特定的檔案
jar xf jar-file archived-file...
運行一個打包為可執行 JAR 檔案的應用程式
java -jar app.jar

相關詞條

熱門詞條

聯絡我們