跳至內容

JAR(檔案格式)

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 12:53 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

佇軟體領域,JAR 檔案(Java 歸檔,英語:JavaARchive)是一種軟體套件檔案格式,通常用佇聚合大量的 Java 類別檔案、有關係的物件佮資源(文字、圖片等等)檔案到一个檔案,通好分放 Java 平台應用軟體抑是庫。

JAR 檔案是一種歸檔案,以 ZIP 格式構建,以 ` . jar ` 為副檔名。使用者會使用 JDK 內建的 jar 命令建立抑是提 JAR 檔案。嘛會使用其他的 ` zip ` 壓縮工具,猶毋過壓縮的時陣 zip 檔案頭內底的條目順序真重要,因為乎 Manifest 檔案定著愛囥佇首位。JAR 檔 àn-nāi 的檔名是 Unicode 文字。

設計的

一个 JAR 檔案允准 Java 執行的時高效地部署一組類和𪜶相關的資源。JAR 檔案中的元素會使予人壓縮,按呢來喔,佇單個請求中下載規个應用程式,予伊下載一个 JAR 檔案比對構成一个 Java 應用的誠濟無壓縮的檔案單獨下載閣較方便。包 java . util . zip 包含讀寫 JAR 檔案的類。

JAR 檔案咧路徑 META-INF / MANIFEST . MF 下跤有一个可選的 Manifest 檔案。Manifest 檔案中的條目定義這个 JAR 檔案按怎樣被使用。比如講,類路徑條目由其他 JAR 檔案的絕對抑是相對路徑的列表組成,用佇指定咧載入本 JAR 檔案的時陣同時載入的其他 JAR 檔案。雖然旨咧簡化 JAR 的使用,但是佇咧實踐中證明 Manifest 檔案是足脆弱的,因為入口點 JAR 佇咧建立的時陣依賴所有相關的 JAR 確定位置。一旦需要改版本抑是庫的位置,必須愛重起 Manifest 檔案。

為著欲提 JAR 檔案的內容,使用者會當使用任何標準的 unzip 解壓縮軟體,抑是每一个 Java 虛擬機器攏有的 ` jar ` 命令:「 ` jar-xf foo . jar `」。

開發者會使嘿 JAR 檔案進行數位簽章。佇這个情形下,簽章資訊成做1875入的 Manifest 檔案的一部份。JAR 本身並無去予人簽章,是歸檔內底的每一个檔案的校驗佮連同其名作為簽章,予人記錄佇 Manifest 檔案中。濟个實體可能簽署一个 JAR 檔案,並且逐改簽章時改變這个 JAR 檔案,雖然簽署檔案本身猶原有效。當 Java 執行的時陣載入簽章的 JAR 檔案的時陣,伊會當驗證簽章並且拒絕載入簽章不匹配的類。Java 執行的時嘛支援「密封」的包(Sealed Packages)。 類別載入器一旦成功裝載密封包中的某一个類後,其後載入的類必須是由仝一實體簽章,才去予允准載入去仝一个包。這會當防止惡意代碼予人插入去到現有的軟體套件,也若接觸著包範圍內底的類似佮資料。

開發者會使嘿 JAR 檔案進行透濫,按呢該 JAR 檔案的使用者無法度得著關於該 JAR 檔案所包含的代碼的傷濟資訊,並且會當壓縮檔案大細。這佇空間受限的躉入式系統開發中誠有路用。

可執行 JAR 檔案

一个可執行 Java 程式佮其使用的庫檔案會當打包佇一个 JAR 檔案中。

可執行的 JAR 檔案中的 Manifest 檔案用代碼 ` Main-Class : myPrograms . MyClass ` 指定矣入口點類,注意欲指明該類的路草(-cp 參數將被忽略)。 有的是作業系統會當點擊了後直接執行會當執行 JAR 檔案。而且閣較典型的呼叫著是通過命令列執行「` java-jar foo . jar `」。

佇多數平台頂會當使用封裝器封裝會當執行 JAR 檔案。比如講,對於閣較佮意使用 Windows EXE 的 Microsoft Windows 使用者來講,會使用工具(如 JSmooth、Launch 四 J、WinRun 四 J、Nullsoft 指令碼安裝系統等等), 將單個 JAR 檔案轉換做會當執行檔。

Manifest

佇咧 Java 平台中,Manifest 檔案是 JAR 歸檔中所包含的特殊檔案。Manifest 檔案被用來定義擴充抑是檔案包包咧資料。Manifest 檔案是一个元資料檔案,伊包含無仝的部份內底的鍵-值對資料。若一个 JAR 檔案予人當做會當執行檔,則其中的 Manifest 檔案需要指出該程式的主類檔案。通常 Manifest 檔案的檔名做 ` MANIFEST . MF `。

通常 Manifest 檔案攏佮 Java 檔案相關,其他的狀況較少看著。

Apache Ant 的 Zip / JAR 支援

佇咧 Apache Ant 佇這个工具內底有其實家己的包—— org . apache . tools . zip,用來讀寫 Zip 和 JAR 歸檔檔案,並包括著 Unix 檔案系統的支援。org . apache . tools . zip 包發布佇 Apache 軟體基金會許可下,並且予人設計做佇咧 Ant 以外使用。

相關格式

幾種相關的檔案格式建立佇 JAR 格式的基礎頂面:

  • WAR(Web 應用程式歸檔,英語:Web application archive ),嘛是一種 Java 歸檔,儲存 XML 檔案、Java 類別、JSP 和 Web 應用程式中的其他檔案。
  • RAR(資源配接器歸檔,英語:Resource adapter archive), 遮毋是講 RAR 檔案格式), 嘛是一種 Java 歸檔,儲存 XML 檔案、Java 類別和 Java EE 連接器架構(JCA)應用中的其他檔案。
  • EAR ( 檔案格式 )(英語:Enterprise archive), 是一種複合式 Java 歸檔檔案,包括著矣 XML 檔案、Java 類別佮針對 Java EE 應用的其他 Java 歸檔檔案,比如講 JAR、WAR 和 RAR。
  • SAR(英語:Service archive), 佮 EAR 類似。伊提供矣 service . xml 檔案佮相應的 JAR 檔案。
  • APK ( Android 應用程式包檔案,英語:Android application package)Java 歸檔格式的一个變種,用佇咧 Android 應用程式。

參見

  • JAR hell
  • Open Packaging Conventions
  • Java 應用程式咧講符仔

參考文獻

外部連結

  • JAR 檔案概覽
  • JAR 檔案定義
  • JAR 檔案的初始定義
  • IBM developmentWorks:JAR 檔案揭密