跳至內容

清單檔案

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

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

佇咧電腦領域,清單檔案(Manifest files)通常是元資料檔案,遮的元資料通常是固定值,用佇描述程式的相關資訊。清單檔案會當是一个檔案,嘛會當是加一个檔案。

Android

清單檔案,咧講關於著應用的必要資訊。遮的資訊用佇咧 Android 佇咧建工具、Android 系統、Google Play。

Docker

Docker 中,鏡像的清單資料並毋是以檔案的形式展示,是通過命令列 ` docker manifest ` 方式咧控制台展示。manifest 包含的是鏡親像資訊,如:層數、大細、摘要碼。

Java

佇咧 Java 平台中,清單檔案(Manifest file)是 JAR 檔案中包含的特殊檔案。Manifest檔案被用來定義擴充抑是檔案包包咧資料,是一个元資料檔案,伊包含無仝的部份的名 / 值對資料。若一个 JAR 檔案被用來做為可執行檔,若其中的 Manifest 檔案需要指出該程式的主類檔案。通常 Manifest 檔案的檔名做 ` MANIFEST . MF `。

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

檔案規範

JAR 檔案檔案佇咧規定位置包含 ` META-INF / MANIFEST . MF `。佇一个檔案檔案中,干焦會當有一个 Manifest 檔案,而且著愛佇規定的 ` META-INF ` 資料篋仔中。

由 JDK 一鋪零建立的 Manifest 檔 àn-nāi 好啦:

` ` ` Manifest-Version : 一垺零 ` ` `

其中包含講所有條目均做名 / 價值嘿。檔案頭的名佮值著冒號分隔。預設的 Manifest 檔案顯示伊遵對 Manifest 資源設定檔規範一孵零。 Manifest 檔案閣會當包括該檔案檔案中所打包的其他檔案的資訊。具體 Manifest 檔案中記錄的檔案資訊由該 JAR 檔案的預期使用物件決定。預設的 Manifest 檔案並無包括其他檔案的資訊,所以只包括唯一一行關於著應該 Manifest 檔案家己的資料。

特殊用法的 Manifest 檔案頭

預設 Manifest 檔案會當根據 JAR 檔案的用處來做相應修改。若是 JAR 檔案干焦是用作存檔,遐爾 ` MANIFEST . MF ` 檔案干焦包含預設資訊。 毋過,大多數啦 JAR 檔案攏毋但是用作壓縮存檔,相應的 Manifest 的檔案嘛包括著特定的資訊。下跤出現一寡主要的特殊用法的 Manifest 檔案頭:

JAR 應用程式: 若是 JAR 檔案被用做會當執行的應用程式,按呢應用程式需要去共 Java 虛擬機器入口點位置。任意包括 ` public static void main ( String [ ] args ) ` 方法的類似入口點。該資訊由檔案頭 Main-Class 提供,基本格式如下:

` ` ` Main-Class : classname ` ` `

classname 值得由應用程式的入口點代替。

會當載擴充: 會當下載擴充檔案是由其他 JAR 檔案中的 Manifest 檔案咧講的 JAR 檔案。通常情況下,JAR 檔案會當包含一个 Applet 小應用程式,該 JAR 檔案的 Manifest 檔案是講向一系列的 JAR 檔案成做會當下載擴充來支援該細應用程式。擴充之間嘛會當使用仝款的方法來進行指向。 會當下載擴充資訊是由小應用程式抑是另外一擴充中的 Manifest 檔案的 Class-Path 檔案頭提供的。通常可見的 Class-Path 檔案頭內容如下:

` ` ` Class-Path : servlet . jar infobus . jar acme / beans . jar ` ` `

佇這个檔案頭的資訊內底,servlet . jar,infobus . jar 以及 acme / beans . jar 中的類將作為會當下載擴充為 Applet 小應用程式抑是 Java 應用程式服務。Class-Path 中予出的超連結是該 Applet 小應用程式抑是 Java 應用程式的相對位址。

封裝加封: JAR 檔案中的封裝會當選擇進行加封,即時封裝中所定義的類必須愛予人存檔佇仝款的 JAR 檔案中。封裝加封會當用來確保類版本的連貫性抑是作為安全措施。 愛對封裝進行加封,需要對該封裝加入檔案頭 Name,然後加入檔案頭 Sealed,如下:

` ` ` Name : myCompany / myPackage / Sealed : true ` ` `

檔案頭 Name 的值為該封裝的相對路徑名。注意,該路徑名由『/』結束以區別於檔名。咧檔案頭 Name 了後無咧採用空行隔開的檔案頭,一律作用佇咧 Name 檔案頭制定的檔案抑是封裝。咧講古例中,因為 Sealed 咱趕緊 ` Name : myCompany / myPackage header ` 了後而且無空行隔開,若按呢該 Sealed 檔案頭干焦作用佇 myCompany / myPackage 封裝。該代碼無法度來執行。

封裝版本: 封裝版本規範定義一系列 Manifest 檔案頭來記錄版本的資訊。每一个封裝攏會當應用一系列 Manifest 檔案頭。版本檔案頭應當直接跟隨在 Name 檔案頭。下跤的例展示所有的版本檔案頭:

` ` ` Name : java / util / Specification-Title : " Java Utility Classes "

Specification-Version : " 一孵二 "

Specification-Vendor : " Sun Microsystems , Inc . " .

Implementation-Title : " java . util "

Implementation-Version : " build 五十七 "

Implementation-Vendor : " Sun Microsystems , Inc . " ` ` `

指定對屬檔案:

` MANIFEST . MF ` 檔案會當用來指定應用程式執行所愛載入的所有的類檔案。

參見

  • Classpath ( Java )

參考文獻