jar包中的MANIFEST.MF文件学习

来源:互联网 发布:powershell 登陆linux 编辑:程序博客网 时间:2024/06/05 04:26

文章参考 

http://soulshard.iteye.com/blog/346453

http://blog.sina.com.cn/s/blog_4e0c21cc010141uh.html

 

【MANIFEST.MF格式说明】

1. 文件中的内容以键值对的形式出现,键值对之间采用"冒号+空格"进行分隔(注意:冒号后的空格必须有,否则格式有错误)

 

2. Class-Path中的各项应使用空格分隔,不是逗号或分号

备注:

i) 文件每行最多72个字符,可以分多行写,但是在行的末尾必须加上空格符作为续行符(注意:末尾的续行符不能少) 

ii) 从第二行开始,必须以两个空格开头,三个以上我没试过,不过不用空格开头和一个空格开头都是不行的

 

3. 文件的最后必须要空两行,并且这两行都必须顶格

 

4. 通常指定Class-Path时会采用每一行一个JAR包的方法,因为每一行的长度有限制,当JAR较多时容易超过

 

5. jar包内有些配置文件想放在jar包外面,比如文件config.properties:如果这个文件是以路径方式载入的,比如new file("./config/config.properties"),那么将config.properties放在jar包相同目录下的config目录下即可,也就是说“./”路径等价于jar包所在目录;如果这个文件是以ClassPath下的文件这种方式载入的,比如在Spring中载入classpath:config.properties,则在MF文件的配置文件的ClassPath中添加“./”,然后将这个配置文件与jar包放在同一个目录即可,当然也可以在MF文件的配置文件的ClassPath中添加“./config/”,然后把配置文件都放在jar包相同目录下的config目录下。

 

【MANIFEST.MF示例】

Manifest-Version: 1.0Created-By: 1.6.0_10-rc2 (Sun Microsystems Inc.)Premain-Class: itracer.ITracerCan-Redefine-Classes: trueCan-Retransform-Classes: trueCan-Set-Native-Method-Prefix: trueClass-Path: lib/asm-4.0.jar  lib/asm-util-4.0.jar  lib/log4j.jar

 (注:示例中指定Class-Path时采用了分行的方法,则每行的后面(除最后一行外)都有一个空格,并且由于多个Classpath之间有空格符进行分隔,所以

在每行的开头有一个空格符。整个文件的最后空两行,并且这两行都必须顶格) 

 

 

0 0
原创粉丝点击