格式详解:
1. 基本格式
属性名称+:+空格+属性值
2. 没行最多72个字符,换行继续必须以空格开头
3. 文件最后必须要有一个回车换行
4. Class-Path 当前路径是jar包所在目录,如果要引用当前目录下一个子目录中的jar包,使用以下格式
子目录/xxx.jar 子目录/yyy.jar
技巧:多个jar包的引用,可以使用 .classpath 文件中classpathentry 的值
5. 在任何平台上路径分割符都是 /,多个jar包引用以空格分开
内容详解:
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文 件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内容,先来看struts.jar中包含的MANIFEST.MF文件内 容:
Manifest-Version: 1.0
Created-By: Apache Ant 1.5.1
Extension-Name: Struts Framework
Specification-Title: Struts Framework
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.1
Implementation-Title: Struts Framework
Implementation-Vendor: Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.1
Class-Path: commons-beanutils.jar commons-collections.jar commons-dig
ester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar s
truts-legacy.jar
如果我们把MANIFEST中的配置信息进行分类,可以归纳出下面几个大类:
一. 一般属性
1. Manifest-Version
用来定义manifest文件的版本,例如:Manifest-Version: 1.0
2. Created-By
声明该文件的生成者,一般该属性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
3. Signature-Version
定义jar文件的签名版本
4. Class-Path
应用程序或者类装载器使用该值来构建内部的类搜索路径
二. 应用程序相关属性
1. Main-Class
定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 java -jar x.jar来运行该jar文件。
OSGi 包 header 说明
- Bundle-Activator 指定用于启动和停止包的类的名称。
- Bundle-Classpath 指定包含类和资源的 JAR 文件或目录。句号(‘.’)、默认值指定了包的 JAR 的根目录。
- Bundle-ContactAddress 包含供应商的联系地址。
- Bundle-Copyright 包含此包的版权说明。
- Bundle-DocURL 指定了一个指向有关此包的文档的 URL。
- Bundle-Localization 指定了包的本地化文件的位置,其默认值为 OSGI-INF/l10n/bundle。
- Bundle-ManifestVersion 指定该包遵从 OSGi 规范 V3 或者 OSGi 规范 V4 中的规则。
- Bundle-Name 指定该包的可读名称(无空格)。
- Bundle-SymbolicName 一个强制的 header,用于为此包指定一个惟一的名称。
- Bundle-Vendor 包含一个包供应商的可读名称。
- Bundle-Version 指定包的版本,默认为 0.0.0。
- Export-Package 指定此包的导出包(exported package)。
- Fragment-Host 定义此片段的本地包(host bundle)。
- Import-Package 声明此包的导入包(imported package)。
- Require-Bundle 指定从其他包所需的导出。
- Import-Service 不建议使用
- Export-Service 不建议使用