一、前言
通过执行形如 jar -cvf src.jar src 命令将多个.class文件打包成JAR包时,你会发现JAR包中除了src目录外还多了个MATE-INF/MAINFEST.MF,那是为什么呢?
其实关于JAR包的描述信息、启动时的配置信息和安全性信息等均保存在META-INF下,因此了解META-INF目录对发布、部署十分重要的哦!下面仅为部分内容的整理,待日后深入实践后再补充完整。官方文档为:http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html
二、META-INF/MAINFEST.MF清单文件组成元素
META-INF/MAINFEST.MF清单文件由1个 main-section 和0到N个 individual-section 组成,而每个section中含有多个attribute组成,其中 main-section 中的attribute命名为 main-attribute ,而 individual-section 中的attribute命名为 perentry-attribute 。
各个attribute间使用作为分隔符(Unix下则使用作为分隔符,Mac下则使用作为分隔符)。
individual-section 以名为 Name 的 perentry-attribute 来标识该区域,且作为该区域的起始行。
示例:
Manifest-Version: 1.0Created-By: 1.2(Sun Microsystems Inc.)
Sealed:trueName: foo/bar/Sealed:false
main-section 用于描述JAR包的安全、配置信息,和对JAR包内所有包和文件的默认信息。
每