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中的各項應使用空格分隔,不是逗號或分號。最好寫上當前目錄(class-path: .)
   例如:Class-Path: lib/activation-1.1.1.jar lib/axis.jar lib/commons-discovery-0.2.jar 
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目錄下。
相關文章
相關標籤/搜索