使用JAR包中MANIFEST.MF的注意事項
JAR包中MANIFEST.MF注意事項
1. Manifest-Version
用來定義manifest文件的版本,例如:Manifest-Version: 1.0
2. Created-By
聲明該文件的生成者,一般該屬性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
3. Signature-Version
定義jar文件的簽名版本
4. Main-Class
定義jar文件的入口類,該類必須是一個可執(zhí)行的類,一旦定義了該屬性即可通過 java -jar x.jar來運行該jar文件。
5. Class-Path
應(yīng)用程序或者類裝載器使用該值來構(gòu)建內(nèi)部的類搜索路徑
注意事項
1.文件最后必須要有個換行(建議2個換行),而且該行不能有空格
2.Manifest-Version、Main-Class和Class-Path后面跟著一個英文的冒號,冒號后面必須跟著一個空格,然后才是版本號、類和ClassPath
3.jar包內(nèi)有些配置文件想放在jar包外面,比如文件config.properties:如果這個文件是以路徑方式載入的,比如new file("./config/config.properties"),那么將config.properties放在jar包相同目錄下的config目錄下即可,也就是說“./”路徑等價于jar包所在目錄;如果這個文件是以ClassPath下的文件這種方式載入的,比如在Spring中載入classpath:config.properties,則在MF文件的配置文件的ClassPath中添加“./”,然后將這個配置文件與jar包放在同一個目錄即可,當(dāng)然也可以在MF文件的配置文件的ClassPath中添加“./config/”,然后把配置文件都放在jar包相同目錄下的config目錄下。
Class-Path的注意事項
1.每行最多72個字符;
2.多個jar包用空格隔開;
3.如果需要換行,行首要有一個空格,行尾也要有一個空格(一般是這樣,例外情況如第4點注意事項);
4.如果行尾沒空格,則該行與下一行的內(nèi)容是連接起來的,如例子2中l(wèi)ib/dom4j-1.6.1.jar被拆分到了2行里,lib/dom4j-1.6后面是沒有空格的,與.1.jar是直接連在一起組成一個jar包的。
例子1:
Manifest-Version: 1.0 Class-Path: ?lib/bsf.jar? ?lib/log4j.jar? ?lib/dom4j-1.6.1.jar? ?lib/jakarta-oro-2.0.8.jar? ?lib/jaxen-1.1-beta-6.jar? ?lib/javascriptplugin.ZIP? ?lib/js.jar? ?lib/sopapi.jar? ?lib/sopdes.jar? ?lib/jakarta-regexp-1.5.jar? ?lib/commons-net-1.4.1.jar? ?lib/commons-pool2-2.4.2.jar? ?lib/log4j-1.2.17.jar?
例子2:
Manifest-Version: 1.0 Class-Path: ?lib/bsf.jar lib/log4j.jar lib/dom4j-1.6 ?.1.jar lib/jakarta-oro-2.0.8.jar lib/jaxen-1.1-beta-6.jar lib/javascr ?iptplugin.ZIP lib/js.jar lib/sopapi.jar lib/sopdes.jar lib/jakarta-re ?gexp-1.5.jar lib/commons-net-1.4.1.jar
Java可執(zhí)行jar的manifest編寫
Eclipse:形式
選中項目右鍵
命令行形式
1.編寫Java類
2.命令行指定到項目/src文件夾,編譯
3.編寫manifest文件
4.目錄重新定位到bin/classes編譯文件目錄下, 執(zhí)行打包命令
Jar /? 看詳細說明。
命令行執(zhí)行 java -jar xxx.jar時 , 通過-cp或者-classpath指定lib文件夾都無效, 需要這樣:
java -Djava.ext.dirs=./lib/ -jar xxxx.jar
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud Alibaba 基本開發(fā)框架搭建過程
這篇文章主要介紹了SpringCloud Alibaba 基本開發(fā)框架搭建過程,開發(fā)工具選用的idea,本文通過圖文實例相結(jié)合給大家分享搭建全過程,需要的朋友可以參考下2021-06-06Java實現(xiàn)企業(yè)員工管理系統(tǒng)
這篇文章主要為大家詳細介紹了Java實現(xiàn)企業(yè)員工管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Java數(shù)據(jù)庫連接池的幾種配置方法(以MySQL數(shù)據(jù)庫為例)
這篇文章主要介紹了Java數(shù)據(jù)庫連接池的幾種配置方法(以MySQL數(shù)據(jù)庫為例) 的相關(guān)資料,需要的朋友可以參考下2016-07-07