標籤:
jar檔案聽說過嗎,沒有?或者陌生!好,沒關係,這就是我們的第一站:打包發布。
為什麼會有這個玩意呢,首先,這是jar的全稱:JavaTM Archive (JAR) file,是的,就是java封存檔案。這有點類似zip檔案,想一想它是幹什麼的用的呢,壓縮!?沒錯就是要壓縮,將我們原先零散的東西放到一下,重新 組織,所有這些目的只有一個:方便!好了,不用管他是怎麼壓縮的,我們的重點是哪些是我們要壓縮的(輸入),還有壓縮成了什麼(輸出),進而將它發布(部 署)。
那我們的輸入(要壓縮的東西)主要是class檔案,還有輔助的資源(這其中可能有圖片,jsp檔案,html檔案等等)。 Jar技術在jdk1.1版本中就已存在,在1.2中又有了增強。接下來說說jar的好處吧,這是官方的描述:安全,快速下載,壓縮,獵取包,版本化包, 可攜。
說了這麼多,我們現在開始實施。
先開啟命令提示字元(win2000或在運行框裡執行cmd命令,win98為DOS提示符),輸入jar Chelp,然後斷行符號(如果你盤上已經有了jdk1.1或以上版本),看到什麼:
用法:jar {ctxu}[vfm0Mi] [jar-檔案] [manifest-檔案] [-C 目錄] 檔案名稱 ...
選項:
-c 建立新的存檔
-t 列出存檔內容的列表
-x 展開存檔中的命名的(或所有的〕檔案
-u 更新已存在的存檔
-v 產生詳細輸出到標準輸出上
-f 指定封存檔案名
-m 包含來自標明檔案的標明資訊
-0 只儲存方式;未用zip壓縮格式
-M 不產生所有項的清單(manifest〕檔案
-i 為指定的jar檔案產生索引資訊
-C 改變到指定的目錄,並且包含下列檔案:
如果一個檔案名稱是一個目錄,它將被遞迴處理。
清單(manifest〕檔案名稱和封存檔案名都需要被指定,按‘m‘ 和 ‘f‘標誌指定的相同順序。
樣本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/A.txt -C foo/B.txt
jar cvf ${baseDir}/plugin.jar -C ${baseDir} com -C ${baseDir} assets
jar基本操作:
1. 建立jar檔案
| |
jar cf jar-file input-file(s) c---want to Create a JAR file. f---want the output to go to a file rather than to stdout. eg: 1)jar cf myjar.jar query_maintain_insert.htm 2)jar cvf myjar.jar query_maintain_insert.htm v---Produces verbose(詳細的) output. |
| |
3)jar cvf myjar.jar query_maintain_insert.htm mydirectory 4)jar cv0f myjar.jar query_maintain_insert.htm mydirectory 0---don‘t want the JAR file to be compressed. 5)jar cmf MANIFEST.MF myjar.jar yahh.txt m---Used to include manifest information from an existing manifest file. 6)jar cMf MANIFEST.MF myjar.jar yahh.txt M---the default manifest file should not be produced. 7)jar cvf myjar.jar * *---create all contents in current directory. |
2. 察看jar檔案
| |
jar tf jar-file t---want to view the Table of contents of the JAR file. eg: 1)jar vft yahh.jar v---Produces verbose(詳細的) output. |
3. 提取jar檔案
| |
jar xf jar-file [archived-file(s)] x---want to extract files from the JAR archive. eg: 1)jar xf yahh.jar yahh.txt(僅提取檔案yahh.txt) 2)jar xf yahh.jar alex/yahhalex.txt(僅提取目錄alex下的檔案yahhalex.txt) 3)jar xf yahh.jar(提取該jar包中的所有檔案或目錄) |
4. 修改Manifest檔案
| |
jar cmf manifest-addition jar-file input-file(s) m---Used to include manifest information from an existing manifest file. |
5. 更新jar檔案
| |
jar uf jar-file input-file(s) u---want to update an existing JAR file. |
[Android Pro] Java進階學習:jar打包詳解