manifest详解,
当你打开Java的Jar文件时,你经常可以看到该文件包含一个META-INF目录。这个目录下会有一些文件,包括一个清单。MF,它描述了这个JAR文件的很多信息。下面将介绍MANIFEST的内容。详细的MF文件。我们先来看看MANIFEST的内容。struts.jar中包含的MF文件:
清单-版本:1.0
创建者:Apache Ant 1.5.1
扩展名称:Struts框架
规范-标题:Struts框架
规范-供应商:Apache软件基金会
规格-版本:1.1
实现标题:Struts框架
实现-供应商:Apache软件基金会
实现-供应商-Id: org.apache
实施版本:1.1
class-Path:commons-bean utils . jar commons-collections . jar commons-digester . jar commons-logging . jar commons-validator . jar Jakarta-oro . jar struts-legacy . jar
如果我们对清单中的配置信息进行分类,我们可以总结出以下类别:
一.一般属性
1.清单版本
用于定义清单文件的版本,例如:Manifest-Version: 1.0。
2.创建者
声明文件的创建者。通常,该属性由jar命令行工具生成,例如:Created-By: Apache Ant 1.5.1。
3.签名版
定义jar文件的签名版本
4.类别路径
应用程序或类加载器使用这个值来构建内部类搜索路径。
二。应用程序相关属性
1.主要级别
定义jar文件的入口类,必须是可执行类。一旦定义了这个属性,jar文件就可以通过java -jar x.jar运行了
三。子视图相关属性
1.扩展列表
该属性指定了applet所需的扩展信息列表,列表中的每个名称对应于以下属性
2.分机-分机-名称
3.扩展-规格-版本
4.扩展-实现-版本
5.扩展-实施-供应商标识
5.扩展-实现-URL
四。扩展身份属性
1.扩展名
属性定义了jar文件的身份,比如Extension-Name: Struts Framework。
五.包扩展属性
1.Implementation-Title定义了扩展实现的标题。
2.Implementation-Version定义扩展实现的版本。
3.实现——供应商定义扩展实现的组织。
4.Implementation-Vendor-Id定义了扩展实现的组织的身份。
5.实现-URL:定义扩展包的下载地址(URL)。
6.规范标题定义了扩展规范的标题
7.规范-版本定义了扩展规范的版本
8.规范供应商陈述了维护规范的组织。
9.Sealed定义了jar文件是否密封,值可以是真也可以是假(这个我还是不太懂)
不及物动词签名相关属性
签名属性可以参考JavaMail提供的mail.jar中的一段话。
名称:javax/mail/Address.class
摘要算法:SHA MD5
SHA-Digest:ajr 7 rqnn//cdygou xbd 06 msvfi 4=
MD5-Digest:zntiq 2 aqatsniowxi 1 qpw==
本节定义了类签名的类名、计算摘要的算法名以及相应的摘要内容(用BASE64方法编码)。
七。自定义属性
除了上述属性,您还可以在MANIFEST中添加自己的属性和响应值。例如,J2ME计划的jar包可能包含以下信息
微环境配置:CLDC 1.0
MIDlet-名称:J2ME _摩伯MIDlet套件
MIDlet信息网址:http://www.javayou.com/
MIDlet-Icon: /icon.png
Midlet供应商:MIDlet套件供应商
MIDlet-1: mobber,/icon.png,mobber
MIDlet版本:1.0.0
微编辑-简介:MIDP-1.0
MIDlet-描述:通信器
关键是我们如何读取这些信息?其实很简单。JDK为我们提供了处理这些信息的API。有关详细信息,请参见java.util.jar包。我们可以通过向JarFile传递一个JarFile的路径,然后调用Jarfile的getManifest方法来获取清单信息。
有关JAR文件的更多详细规范,请参考
http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html
中文描述
http://www-900.ibm.com/developerWorks/cn/java/j-jar/
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。