清单文件

✍ dations ◷ 2025-12-08 14:36:19 #清单文件

在计算机领域, 清单文件(Manifest files)通常是元数据文件,这些元数据通常是固定值,用于描述程序的相关信息。清单文件可以是一个文件,也可以是多个文件。

清单文件,描述了关于应用的必要信息。这些信息用于Android构建工具、Android系统、Google Play。

Docker中,镜像的清单数据并不是以文件的形式展示,而是通过命令行docker manifest方式在控制台展示。manifest包含的是镜像信息,如:层数、大小、摘要码。

在Java平台中, 清单文件(Manifest file)是JAR文件中包含的特殊文件。Manifest文件被用来定义扩展或文件打包相关数据,是一个元数据文件,它包含了不同部分中的名/值对(英语:Attribute–value_pair)数据。如果一个JAR文件被用来作为可执行文件,那么其中的Manifest文件需要指出该程序的主类文件。通常Manifest文件的文件名为MANIFEST.MF

通常Manifest文件都与Java文件相关,其他的情况比较少见。

JAR文件文件在规定位置包含META-INF/MANIFEST.MF 。在一个文件文件中,只能有一个Manifest文件,而且必须在规定的META-INF文件夹中。

由JDK1.0创建的Manifest文件内容如下:

Manifest-Version: 1.0

其中包含的所有条目均为名/值对。文件头的名和值由冒号分隔。默认的Manifest文件显示它遵从Manifest资源配置文件规范1.0。Manifest文件还可以包含该文件文件中所打包的其他文件的信息。具体Manifest文件中记录的文件信息由该JAR文件的预期使用对象决定。默认的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: "1.2"
Specification-Vendor: "Sun Microsystems, Inc.".
Implementation-Title: "java.util"
Implementation-Version: "build57"
Implementation-Vendor: "Sun Microsystems, Inc."

指定从属文件:

MANIFEST.MF文件可以用来指定应用程序运行所必须加载的所有类文件。

相关

  • 奥古斯特·凯库勒弗里德里希·奥古斯特·凯库勒·冯·斯特拉多尼茨(德语:Friedrich August Kekulé von Stradonitz,1829年9月7日-1896年7月13日),德国有机化学家。从1850年代直到他去世,凯库勒是欧
  • 儿童期崩解症儿童崩解性疾病(CDD),也称为Heller综合征和崩解性精神病,是一种罕见疾病,其特征是在语言、社会功能和动作技能方面的发育迟缓(或严重和突然的退化)。研究人员未能成功找到这种疾病
  • 美国东北部美国东北部为美国人口调查局所定义的美国地区。美国东北部北临加拿大,西临中西部,南接美国南部,东向大西洋。此区域乃美国工商业最发达的区域及都市化程度最高的区域,美国第一大
  • 转动-振动耦合旋转振联(Rotational–vibrational_coupling)发生在一物体的转动频率接近其自然共振频率时。例如二个以弹簧相连的物体,以其质心为圆心旋转,同时弹簧本身周期性延展及压缩,就可
  • 卧蚕卧蚕,又称眼苔、眼轮或卧蝉,即眼睛下方、紧邻睫毛下缘、微微隆起的部位,微笑时会更为明显,长大约4至7毫米,完美比例在眼睛的0.38-0.41倍左右。在面相学来说,有卧蚕的人易招桃花,一
  • 紫花酢浆草紫花酢浆草()为酢浆草科酢浆草属下的一个种,又名红花酢浆草、铜锤草。多年生草本植物,地下有小鳞茎,用鳞茎繁殖。茎和叶含草酸,有酸味;复叶由3片阔倒卵形小叶组成,叶尖凹缺;夏季开紫
  • 万岁,我们强大的祖国《万岁,我们强大的祖国》(俄语:Да здравствует наша держава )是鲍里斯·亚历山德罗维奇·亚历山德罗夫(英语:Boris Alexandrovich Alexandrov)于1943年创
  • 佩特罗斯山坐标:.mw-parser-output .geo-default,.mw-parser-output .geo-dms,.mw-parser-output .geo-dec{display:inline}.mw-parser-output .geo-nondefault,.mw-parser-output .geo-multi-punct{display:none}.mw-parser-output .longitude,.mw-parser-output .latitude{white-space:n
  • 吾王万寿无疆《吾王万寿无疆》(泰语:จอมราชจงเจริญ,罗马化:)是暹罗国歌暨王室颂歌,也是泰国(暹罗)历史上的首部国歌。《吾王万寿无疆》沿用英国国歌《天佑女王》(或《天佑吾王》)的曲调,并由帕亚西孙通沃汉(英语:Phraya Sisunthonwohan)填阿瑜陀耶语(泰语)歌词,于1852年正式采用,于1871年由《天上明月》取代。1852年,英国将领汤玛仕·乔治·诺克斯(英语:Thomas George Knox)与英比(Impey)二人分别先后抵埗暹罗并负责训练禁军。两位将领除了为暹罗军队引入了欧洲的
  • 定贵人定贵人(?-1843年1月24日),孙氏,亦作孙佳氏。镶红旗满洲人。提督桂明(行八)之姐。道光帝之贵人。初入侍宣宗潜邸为格格。嘉庆二十五年九月初五日(1820年),格格孙氏封为定贵人。道光元年,随恬嫔居住在承乾宫。道光十一年迁居储秀宫,道光十八年二月二十五日已住在延禧宫。道光二十二年十二月十四日,定贵人溘逝,十二月十七日,敬事房首领刘平止退定贵人下女子大妞等员吃食。定贵人在去世前已侍奉道光帝超过四十年。道光二十五年十一月初二日卯时,随同恬嫔金棺一并奉移西陵,同月初七日申时,奉安慕东陵。定贵人家族原隶镶红旗