JAR(Java Archive,Java 歸檔文件)是與平台無關的文件格式,它允許將許多文件組合成一個壓縮文件。為 J2EE 應用程序創建的 JAR 文件是 EAR 文件(企業 JAR 文件)。
JAR 文件格式以流行的 ZIP 文件格式為基礎。與 ZIP 文件不同的是,JAR 文件不僅用於壓縮和發布,而且還用於部署和封裝庫、組件和插件程序,並可被像編譯器和 JVM 這樣的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用來指示工具如何處理特定的 JAR。
一個 JAR 文件可以用於
□ 用於發布和使用類庫
□ 作為應用程序和擴展的構建單元
□ 作為組件、applet 或者插件程序的部署單位
□ 用於打包與組件相關聯的輔助資源
JAR 文件格式提供了許多優勢和功能,其中很多是傳統的壓縮格式如 ZIP 或者 TAR 所沒有提供的。它們包括:
·安全性。
可以對 JAR 文件內容加上數字化簽名。這樣,能夠識別簽名的工具就可以有選擇地為您授予軟件安全特權,這是其他文件做不到的,它還可以檢測代碼是否被篡改過。
·減少下載時間。
如果一個 applet 捆綁到一個 JAR 文件中,那么瀏覽器就可以在一個 HTTP 事務中下載這個 applet 的類文件和相關的資源,而不是對每一個文件打開一個新連接。
·壓縮。
JAR 格式允許您壓縮文件以提高存儲效率。
·傳輸平台擴展。
Java 擴展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,這些擴展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 開發的擴展例子)。
·包密封。
存儲在 JAR 文件中的包可以選擇進行密封,以增強版本一致性和安全性。密封一個包意味着包中的所有類都必須在同一 JAR 文件中找到。
·包版本控制。
一個 JAR 文件可以包含有關它所包含的文件的數據,如廠商和版本信息。
·可移植性。
處理 JAR 文件的機制是 Java 平台核心 API 的標准部分。
常見的 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
運行一個打包為可執行 JAR 文件的應用程序