软件指南针:专注于软件传播与分享

MANIFEST.MF文件详解

来源:原创 1095次浏览 0条评论
☞ 本文主要介绍软件Java的相关内容:MANIFEST.MF文件详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

什么是MANIFEST.MF

JAR文件的用途非常广泛,其用途包括电子签名、版本控制、包封装等。那么,是谁什么给了它如此神通广大的能力?答案就是JAR的清单文件MANIFEST.MF

MANIFEST.MF文件是一个特殊文件,位于JAR文件内部的META-INF目录,其中保存了与JAR文件中封装的文件有关的信息(一般称为"元数据")。一个典型的MANIFEST.MF文件,其内容如下:

MANIFEST.MF文件内容

MANIFEST.MF文件就是由一对或多对"属性名:属性值"构成的(一对占据一行)。

当然,MANIFEST.MF文件还可以存储更多属性信息,其中的属性信息目前主要包括:

属性分类 属性及典型值(示例) 属性描述
一般的主要属性 Manifest-Version: 1.0 清单文件的版本信息
Created-By: Apache Ant 1.5.1 定义Java实现的供应商和版本,该属性由jar工具生成。
Signature-Version:1.1 定义jar文件的签名版本。值必须是一个有效的版本号。
Class-Path:commons-beanutils.jar commons-collections.jar 指定该应用或扩展所需的扩展或库的相对URL。
独立应用程序的相关属性 Main-Class:cn.softown.Test 指定main入口类的名称(含包名),该类必须具备可执行的static main方法,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
applet相关属性 Extension-List:javahelp java3d 该属性指定applet小程序所需的扩展列表,多个用空格隔开(下面的<extension>就是这里指定的扩展名称)
<extension>-Extension-Name:javax.help 指定applet扩展的唯一名称。
<extension>-Specification-Version:1.0 指定applet必需的扩展规范的最低版本。
<extension>-Implementation-Version:1.0.3 指定applet小程序必需的最低Java实现版本。
<extension>-Implementation-Vendor-Id:example.com 如果applet需要指定供应商的Java实现,该属性可用于标识扩展实现的供应商。
<extension>-Implementation-URL:http://www.example.com/products/stdext/javahelp.jar 如果没有安装必需版本,该属性指定用于获取最新版本扩展的URL。
扩展标识相关属性 Extension-Name:Struts Framework 指定JAR文件中包含的扩展名称
扩展或包的版本和封装信息的相关属性 Implementation-Title:Struts Framework 定义扩展实现的标题
Implementation-Version:1.1 定义扩展实现的版本
Implementation-Vendor:Apache Software Foundation 定义维护扩展实现的供应商。
Implementation-Vendor-Id:org.apache 定义维护扩展实现的供应商唯一ID字符串。
Implementation-URL:http://struts.apache.org 定义扩展实现的下载链接。
Specification-Title:Struts Framework 定义扩展规范的标题。
Specification-Version:1.1 定义扩展规范的版本。
Specification-Vendor:Apache Software Foundation 定义扩展规范的供应商。
Sealed:false 定义JAR文件是否密封,值为"true"或"false"。
什么叫做密封?密封 JAR 文件中的一个包意味着在这个包中定义的所有类都必须在同一个 JAR 文件中找到。
当然,MANIFEST.MF文件还可以根据需要自行添加更多的其他属性,例如:Name、SHA-256-Digest、Magic等。

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部