可执行jar包的MANIFEST.MF

打包可执行jar包时,MANIFEST.MF老是个让人头疼的东西,常常出现这种那种问题。
一个例子:
================================================================================
Manifest-Version: 1.0
Main-Class: test.Main
Class-Path: ./ ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar
  ./lib/commons-lang-2.3.jar ./lib/commons-logging-1.1.jar

================================================================================
各部分解释:
Manifest-Version MF文件版本号
Main-Class 包含main方法的类
Class-Path 执行这个jar包时的ClassPath

如下是须要注意的各个要点:
1. Manifest-Version、Main-Class和Class-Path后面跟着一个英文的冒号,冒号后面必须跟着一个空格,而后才是版本号、类和ClassPath。
2. Class-Path中的各项应使用空格分隔,不是逗号或分号。
3. Class-Path中若是有不少项,写成一行打包的时候会报错line too long,这时须要把Class-Path分多行写。注意:从第二行开始,必须以两个空格开头,三个以上我没试过,不过不用空格开头和一个空格开头都是不行的,我已经试过了。
4. Class-Path写完以后最后必定要有一个空行
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目录下。spa

运行jar包的方式:能够在dos总使用命令运行,也能够建立一个执行脚原本执行,尤为在win中很好使。若是是常常要执行的话,建议建立可执行的脚本。io

相关文章
相关标签/搜索