JAR

JAR

計算機文件格式
在軟件領域,JAR文件(Java歸檔,英語:Java Archive)是一種軟件包文件格式,通常用于聚合大量的Java類文件、相關的元數據和資源(文本、圖片等)文件到一個文件,以便開發Java平台應用軟件或庫。[1]JAR文件是一種歸檔文件,以ZIP格式構建,以.jar為文件擴展名。用戶可以使用JDK自帶的jar命令創建或提取JAR文件。也可以使用其他zip壓縮工具,不過壓縮時zip文件頭裡的條目順序很重要,因為Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。
  • 外文名:JAR
  • 打開方式:Java、winrar

基本含義

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 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

常見應用

相關詞條

相關搜索

其它詞條