以下是根据提供的内容重构后的文档:

# 属性

## 一般属性

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`:应用程序或者类装载器使用该值来构建内部的类搜索路径。

## Application 属性

1. `Main-Class`:定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过 `java -jar x.jar` 来运行该jar文件。

## Applet 属性

1. `Extendsion-List`:该属性指定了小程序需要的扩展信息列表,列表中的每个名字对应以下的属性。

2. `-Extension-Name`

3. `-Specification-Version`

4. `-Implementation-Version`

5. `-Implementation-Vendor-Id`

6. `-Implementation-URL`

## 扩展标识属性

1. `Extension-Name`:该属性定义了jar文件的标识,例如 `Extension-Name: Struts Framework`。

## 包扩展属性

1. `Implementation-Title`:定义了扩展实现的标题。

2. `Implementation-Version`:定义扩展实现的版本。

3. `Implementation-Vendor`:定义扩展实现的组织。

4. `Implementation-Vendor-Id`:定义扩展实现的组织的标识。

5. `Implementation-URL`:定义该扩展包的下载地址(URL)。

6. `Specification-Title`:定义扩展规范的标题。

7. `Specification-Version`:定义扩展规范的版本。

8. `Specification-Vendor`:声明了维护该规范的组织。

. Sealed

定义jar文件是否封存,值可以是true或者false。

签名相关属性:

- Name: javax/mail/Address.class

- Digest-Algorithms: SHA MD5

- SHA-Digest: AjR7RqnN//cdYGouxbd06mSVfI4=

- MD5-Digest: ZnTIQ2aQAtSNIOWXI1pQpw==

这段内容定义了类签名的类名、计算摘要的算法名以及对应的摘要内容(使用BASE64方法进行编码)。

自定义属性:

除了前面提到的一些属性外,你也可以在MANIFEST.MF中增加自己的属性以及响应的值,例如J2ME程序jar包中就可能包含着如下信息:

```

MicroEdition-Configuration: CLDC-1.0

MIDlet-Name: J2ME_MOBBER Midlet Suite

MIDlet-Info-URL: http://zhaomeng.me

MIDlet-Icon: /icon.png

MIDlet-Vendor: Midlet Suite Vendor

MIDlet-1: mobber,/icon.png,mobber

MIDlet-Version: 1.0.0

MicroEdition-Profile: MIDP-1.0

MIDlet-Description: Communicator

```

Manifest技巧:

1. 文件的冒号后面必须要空一个空格,否则会出错。

2. 文件的最后一行必须是一个回车换行符,否则也会出错。

3. 总是以Manifest-Version属性开头。

4. 每行最长72个字符,如果超过的话,采用续行。

5. 确认每行都以回车结束,否则该行将会被忽略。

6. 如果Class-Path中存在路径,使用"/"分隔目录,与平台无关。

7. 使用空行分隔主属性和package属性。

8. 使用"/"而不是"."来分隔package和class,比如com/example/myapp/。

9. class要以.class结尾,package要以/结尾。

10. Class-Path指定需要的jar,多个jar必须要在一行上,多个jar之间以空格隔开。

11. Class-Path不能使用jar中的jar。