習於Eclipse等IDE工具後,總會生疏在Console下的command,經朋友相詢,我也學到了一招,如何建成一個可以執行的jar。

jar -cvfm test1.jar manifest.mf test1.class test2.class

  平常用慣了jar -cvf,還真的不知-m的參數是指定某個manifest檔(沒規定一定要這個檔名),否則jar會預設產出一個manifest檔。而manifest檔內容格式也有陷阱,如下:

Manifest-Version: 1.0
Main-Class: Test1
Class-Path: lib/avalon-framework-4.1.3.jar lib/c3p0-0.9.1.2.jar lib/commons-lang-2.3.jar
 lib/commons-logging-1.1.jar lib/commons-pool-1.3.jar lib/jaxen-core.jar lib/jaxen-jdom.jar
 lib/jdom.jar lib/log4j-1.2.13.jar lib/logkit-1.0.1.jar lib/ojdbc14-10.2.0.2.0.jar
 lib/saxpath.jar lib/spring-2.0.6.jar lib/junit-4.0.jar lib/servlet-api-2.3.jar
 lib/smapi.jar lib/activation.jar lib/mail.jar lib/asn1rt.jar lib/jce-jdk13-133.jar
 lib/jdmkrt.jar lib/opencsv-1.7.jar lib/xerces.jar

Main-Class是指定執行哪個Class的main。這沒問題,問題在Class-Path,若引用的jar或class太長,會有問題,上例就有折行,不止如此,還有下列規則:

1.第二行起都要第一個是空白。

2.除了最後一行,每一行最後都要留一個空白,若不留,字串會被視為連接到下一行。

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()