<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    注銷

    注銷

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      112 隨筆 :: 7 文章 :: 18 評論 :: 0 Trackbacks
    jar  命令詳解  
     
    jar  是隨  JDK  安裝的,在  JDK  安裝目錄下的  bin  目錄中,Windows  下文件名為  jar.exe,Linux  下文件名為  jar。它的運行需要用到  JDK  安裝目錄下  lib  目錄中的  tools.jar  文件。不過我們除了安裝  JDK  什么也不需要做,因為  SUN  已經(jīng)幫我們做好了。我們甚至不需要將  tools.jar  放到  CLASSPATH  中。  
     
    使用不帶任何的  jar  命令我們可以看到  jar  命令的用法如下:  
     
    jar  {ctxu}[vfm0M]  [jar-文件]  [manifest-文件]  [-C  目錄]  文件名  ...  
     
    其中  {ctxu}  是  jar  命令的子命令,每次  jar  命令只能包含  ctxu  中的一個,它們分別表示:  
     
    -c 創(chuàng)建新的  JAR  文件包  
     
    -t 列出  JAR  文件包的內(nèi)容列表  
     
    -x 展開  JAR  文件包的指定文件或者所有文件  
     
    -u 更新已存在的  JAR  文件包  (添加文件到  JAR  文件包中)  
     
    [vfm0M]  中的選項可以任選,也可以不選,它們是  jar  命令的選項參數(shù)  
     
    -v 生成詳細(xì)報告并打印到標(biāo)準(zhǔn)輸出  
     
    -f 指定  JAR  文件名,通常這個參數(shù)是必須的  
     
    -m 指定需要包含的  MANIFEST  清單文件  
     
    -0 只存儲,不壓縮,這樣產(chǎn)生的  JAR  文件包會比不用該參數(shù)產(chǎn)生的體積大,但速度更快  
     
    -M 不產(chǎn)生所有項的清單(MANIFEST〕文件,此參數(shù)會忽略  -m  參數(shù)  
     
    [jar-文件]  即需要生成、查看、更新或者解開的  JAR  文件包,它是  -f  參數(shù)的附屬參數(shù)  
     
    [manifest-文件]  即  MANIFEST  清單文件,它是  -m  參數(shù)的附屬參數(shù)  
     
    [-C  目錄]  表示轉(zhuǎn)到指定目錄下去執(zhí)行這個  jar  命令的操作。它相當(dāng)于先使用  cd  命令轉(zhuǎn)該目錄下再執(zhí)行不帶  -C  參數(shù)的  jar  命令,它只能在創(chuàng)建和更新  JAR  文件包的時候可用。    
     
    文件名  ...  指定一個文件/目錄列表,這些文件/目錄就是要添加到  JAR  文件包中的文件/目錄。如果指定了目錄,那么  jar  命令打包的時候會自動把該目錄中的所有文件和子目錄打入包中。  
     
    下面舉一些例子來說明  jar  命令的用法:  
     
    1)  jar  cf  test.jar  test  
     
    該命令沒有執(zhí)行過程的顯示,執(zhí)行結(jié)果是在當(dāng)前目錄生成了  test.jar  文件。如果當(dāng)前目錄已經(jīng)存在  test.jar,那么該文件將被覆蓋。  
     
    2)  jar  cvf  test.jar  test  
     
    該命令與上例中的結(jié)果相同,但是由于  v  參數(shù)的作用,顯示出了打包過程,如下:  
     
    標(biāo)明清單(manifest)  
     
    增加:test/(讀入=  0)  (寫出=  0)(存儲了  0%)  
     
    增加:test/Test.class(讀入=  7)  (寫出=  6)(壓縮了  14%)  
     
    3)  jar  cvfM  test.jar  test  
     
    該命令與  2)  結(jié)果類似,但在生成的  test.jar  中沒有包含  META-INF/MANIFEST  文件,打包過程的信息也略有差別:  
     
    增加:test/(讀入=  0)  (寫出=  0)(存儲了  0%)  
     
    增加:test/Test.class(讀入=  7)  (寫出=  6)(壓縮了  14%)  
     
    4)  jar  cvfm  test.jar  manifest.mf  test  
     
    運行結(jié)果與  2)  相似,顯示信息也相同,只是生成  JAR  包中的  META-INF/MANIFEST  內(nèi)容不同,是包含了  manifest.mf  的內(nèi)容  
     
    5)  jar  tf  test.jar  
     
    在  test.jar  已經(jīng)存在的情況下,可以查看  test.jar  中的內(nèi)容,如對于  2)  和  3)  生成的  test.jar  分別應(yīng)該此命令,結(jié)果如下;  
     
    對于  2)  
     
    META-INF/  
     
    META-INF/MANIFEST.MF  
     
    test/  
     
    test/Test.class  
     
    對于  3)  
     
    test/  
     
    test/Test.class  
     
    6)  jar  tvf  test.jar  
     
    除顯示  5)  中顯示的內(nèi)容外,還包括包內(nèi)文件的詳細(xì)信息,如:  
     
    0  Wed  Jun  19  15:39:06  GMT  2002  META-INF/  
     
    86  Wed  Jun  19  15:39:06  GMT  2002  META-INF/MANIFEST.MF  
     
    0  Wed  Jun  19  15:33:04  GMT  2002  test/  
     
    7  Wed  Jun  19  15:33:04  GMT  2002  test/Test.class  
     
    7)  jar  xf  test.jar  
     
    解開  test.jar  到當(dāng)前目錄,不顯示任何信息,對于  2)  生成的  test.jar,解開后的目錄結(jié)構(gòu)如下:  
     
      ==  
     
        ¦--  META-INF  
     
        ¦   `--  MANIFEST  
     
      `--  test  
     
        `--Test.class  
     
    8)  jar  xvf  test.jar  
     
    運行結(jié)果與  7)  相同,對于解壓過程有詳細(xì)信息顯示,如:  
     
    創(chuàng)建:META-INF/  
     
    展開:META-INF/MANIFEST.MF  
     
    創(chuàng)建:test/  
     
    展開:test/Test.class  
     
    9)  jar  uf  test.jar  manifest.mf  
     
    在  test.jar  中添加了文件  manifest.mf,此使用  jar  tf  來查看  test.jar  可以發(fā)現(xiàn)  test.jar  中比原來多了一個  manifest。這里順便提一下,如果使用  -m  參數(shù)并指定  manifest.mf  文件,那么  manifest.mf  是作為清單文件  MANIFEST  來使用的,它的內(nèi)容會被添加到  MANIFEST  中;但是,如果作為一般文件添加到  JAR  文件包中,它跟一般文件無異。  
     
    10)  jar  uvf  test.jar  manifest.mf  
     
    與  9)  結(jié)果相同,同時有詳細(xì)信息顯示,如:  
     
    增加:manifest.mf(讀入=  17)  (寫出=  19)(壓縮了  -11%)  
     
    4.  關(guān)于  JAR  文件包的一些技巧  
     
    1)  使用  unzip  來解壓  JAR  文件  
     
    在介紹  JAR  文件的時候就已經(jīng)說過了,JAR  文件實際上就是  ZIP  文件,所以可以使用常見的一些解壓  ZIP  文件的工具來解壓  JAR  文件,如  Windows  下的  WinZip、WinRAR  等和  Linux  下的  unzip  等。使用  WinZip  和  WinRAR  等來解壓是因為它們解壓比較直觀,方便。而使用  unzip,則是因為它解壓時可以使用  -d  參數(shù)指定目標(biāo)目錄。  
     
    在解壓一個  JAR  文件的時候是不能使用  jar  的  -C  參數(shù)來指定解壓的目標(biāo)的,因為  -C  參數(shù)只在創(chuàng)建或者更新包的時候可用。那么需要將文件解壓到某個指定目錄下的時候就需要先將這具  JAR  文件拷貝到目標(biāo)目錄下,再進(jìn)行解壓,比較麻煩。如果使用  unzip,就不需要這么麻煩了,只需要指定一個  -d  參數(shù)即可。如:  
     
    unzip  test.jar  -d  dest/  
     
    2)  使用  WinZip  或者  WinRAR  等工具創(chuàng)建  JAR  文件  
     
    上面提到  JAR  文件就是包含了  META-INF/MANIFEST  的  ZIP  文件,所以,只需要使用  WinZip、WinRAR  等工具創(chuàng)建所需要  ZIP  壓縮包,再往這個  ZIP  壓縮包中添加一個包含  MANIFEST  文件的  META-INF  目錄即可。對于使用  jar  命令的  -m  參數(shù)指定清單文件的情況,只需要將這個  MANIFEST  按需要修改即可。  
     
    3)  使用  jar  命令創(chuàng)建  ZIP  文件  
     
    有些  Linux  下提供了  unzip  命令,但沒有  zip  命令,所以需要可以對  ZIP  文件進(jìn)行解壓,即不能創(chuàng)建  ZIP  文件。如要創(chuàng)建一個  ZIP  文件,使用帶  -M  參數(shù)的  jar  命令即可,因為  -M  參數(shù)表示制作  JAR  包的時候不添加  MANIFEST  清單,那么只需要在指定目標(biāo)  JAR  文件的地方將  .jar  擴(kuò)展名改為  .zip  擴(kuò)展名,創(chuàng)建的就是一個不折不扣的  ZIP  文件了,如將上一節(jié)的第  3)  個例子略作改動:  
     
    ---------------------------------------------------------------  
     
    如果只想看一下有什么東東,用winrar也可以看。  
    用法:jar  {ctxu}[vfm0M]  [jar-文件]  [manifest-文件]  [-C  目錄]  文件名  ...  
    選項:  
           -c    創(chuàng)建新的存檔  
           -t    列出存檔內(nèi)容的列表  
           -x    展開存檔中的命名的(或所有的〕文件  
           -u    更新已存在的存檔  
           -v    生成詳細(xì)輸出到標(biāo)準(zhǔn)輸出上  
           -f    指定存檔文件名  
           -m    包含來自標(biāo)明文件的標(biāo)明信息  
           -0    只存儲方式;未用ZIP壓縮格式  
           -M    不產(chǎn)生所有項的清單(manifest〕文件  
           -i    為指定的jar文件產(chǎn)生索引信息  
           -C    改變到指定的目錄,并且包含下列文件:  
    如果一個文件名是一個目錄,它將被遞歸處理。  
    清單(manifest〕文件名和存檔文件名都需要被指定,按'm'  和  'f'標(biāo)志指定的相同順序。  
     
    示例1:將兩個class文件存檔到一個名為  'classes.jar'  的存檔文件中:  
                 jar  cvf  classes.jar  Foo.class  Bar.class  
    示例2:用一個存在的清單(manifest)文件  'mymanifest'  將  foo/  目錄下的所有  
                         文件存檔到一個名為  'classes.jar'  的存檔文件中:  
                 jar  cvfm  classes.jar  mymanifest  -C  foo/  .  
     
    ---------------------------------------------------------------  
     
    jar  cvf  flight.jar  aa\aa1  aa\aa2  
     
    文件名后面是你要壓縮的文件所在的目錄,可以跟多個  
    ---------------------------------------------------------------  
     
    jar  cvf  class.jar  GreetingServlet.class  22.class  33.class  
    創(chuàng)建jar包  
    如果你要查看tools.jar中的內(nèi)容,用解壓縮軟件(比如rar)解開就可以看了
    posted on 2007-07-05 11:49 注銷..... 閱讀(344) 評論(0)  編輯  收藏 所屬分類: JAVA

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产成人久久综合碰| 99视频全部免费精品全部四虎| 成人在线视频免费| 亚洲综合久久精品无码色欲| 亚州免费一级毛片| 亚洲一卡2卡3卡4卡国产网站| 免费观看无遮挡www的小视频| 亚洲av永久无码嘿嘿嘿| 久久久久国色AV免费看图片| 亚洲伊人久久大香线蕉啊| 黄瓜视频高清在线看免费下载| 亚洲精品美女网站| 日日操夜夜操免费视频| 色多多A级毛片免费看| 精品国产亚洲男女在线线电影 | 无遮挡呻吟娇喘视频免费播放| 日韩在线免费电影| 日韩大片在线永久免费观看网站| 亚洲无码精品浪潮| 久久免费高清视频| 亚洲精品美女在线观看播放| 97无码免费人妻超级碰碰夜夜| 国产精品久久久久久亚洲小说| 亚洲片国产一区一级在线观看| 久久精品国产影库免费看| 老汉色老汉首页a亚洲| 啦啦啦高清视频在线观看免费| 无套内射无矿码免费看黄| 最新国产AV无码专区亚洲| 91短视频免费在线观看| 亚洲av成人中文无码专区| 亚洲中文字幕无码久久综合网 | 国产乱码免费卡1卡二卡3卡| 18禁亚洲深夜福利人口| 亚洲另类激情综合偷自拍图| 久久久久久精品免费看SSS| 国产成人亚洲精品91专区高清| 亚洲精品无码不卡在线播放HE| 成人女人A级毛片免费软件| 朝桐光亚洲专区在线中文字幕| 久久精品国产亚洲AV网站|