Pages

2013年8月16日 星期五

Linux下打包壓縮war、解壓war包和jar命令

把project_a文件夾下的文件打包成project.war

1. 打包
 jar -xvf project.war /project_a

-c   創建war包
-v   顯示過程信息
-f   指定 JAR 檔案名,通常這個參數是必須的
-M  不產生所有項的清單(MANIFEST〕檔,此參數會忽略 -m 參數
-0   這個是阿拉伯數字,只打包不壓縮的意思


2. 特定檔案加入JAR檔
jar uf efiling.jar BOOT-INF\classes\application-prod.yml


3. 解壓到當前目錄
  jar -cvfM0 project.war project


 

 

4. 解壓縮特定檔案

jar xf project.jar BOOT-INF\classes\application-prod.yml


  •  jar 命令詳解:


使用不帶任何的 jar 命令我們可以看到 jar 命令的用法如下:

jar {ctxu}[vfm0M] [jar-文件] [manifest-檔] [-C 目錄] 檔案名 ...

其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一個,它們分別表示:

-c 創建新的 JAR 檔包

-t 列出 JAR 文件包的內容列表

-x 展開 JAR 檔包的指定檔或者所有檔

-u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)

特別注意,在參數的下達中, c/x/t/u 僅能存在一個!不可同時存在!
因為不可能同時壓縮與解壓縮。

-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!
-f 指定 JAR 檔案名,通常這個參數是必須的

請留意,在 f 之後要立即接檔名喔!不要再加參數!

   例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
   『 tar -zcvPf tfile sfile』才對喔!

-p :使用原文件的原來屬性(屬性不會依據使用者而變)
-P :可以使用絕對路徑來壓縮!
-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔中!
–exclude FILE:在壓縮的過程中,不要將 FILE 打包!

-m 指定需要包含的 MANIFEST 清單檔

-0 只存儲,不壓縮,這樣產生的 JAR 檔包會比不用該參數產生的體積大,但速度更快

-M 不產生所有項的清單(MANIFEST〕檔,此參數會忽略 -m 參數

[jar-檔] 即需要生成、查看、更新或者解開的 JAR 檔包,它是 -f 參數的附屬參數

[manifest-文件] 即 MANIFEST 清單文件,它是 -m 參數的附屬參數

[-C 目錄] 表示轉到指定目錄下去執行這個 jar 命令的操作。它相當於先使用 cd 命令轉該目錄下再執行不帶 -C 參數的 jar 命令,它只能在創建和更新 JAR 文件包的時候可用。  

檔案名 ... 指定一個檔/目錄列表,這些檔/目錄就是要添加到 JAR 檔包中的檔/目錄。如果指定了目錄,那麼 jar 命令打包的時候會自動把該目錄中的所有檔和子目錄打入包中。

Related Posts:

  • Microsoft JDBC 連接 URL 範例 在下列範例中,範例程式碼會在連接 URL 中設定各種連接屬性,然後呼叫 DriverManager 類別的 getConnection 方法,以傳回SQLServerConnection 物件。 接著,範例程式碼會使用 SQLServerConnection 物件的 createStatement 方法建立 SQLServerStatemen… Read More
  • Java String 依照單字出現次數/頻率高的依序印出功能: 依照每個單字出現的次數,由大到小,排列印出。 假設: String oriString = "This is a book. That is a pencil" 輸出: is 出現 2 次 a 出現 2 次 This 出現 1 次 That 出現 1 次 book 出現 1 次 pencil 出現 1 次 程式碼: import java.util.regex.*; import java.util.*; public class… Read More
  • 使用Triple DES 加密字串最近因為有需求,需要使用加密的方法來讓連線的帳號密碼用成亂碼來連線。 因此找到了使用 Tripple DES的方式加密字串。 1. 首先,先寄建立Decrypter與Encrypter package security.crypto; import java.io.UnsupportedEncodingException; import javax.crypto.Cipher; import javax.crypto.IllegalBloc… Read More
  • Java判斷作業系統與檔案路徑如何在java程式中判斷幕前作業系統是何種作業系統 以下位範例程式: public class OSValidator { public static void main(String[] args) { if (isWindows()) { System.out.println("This is Windows"); } else if (isMac()) { … Read More
  • 自動擷取憑證與Https頁面資料在寫JSP使用Redirect的時候,如果是導向HTTPS頁面,也可能發生某些異常。 1. java.net.MalformedURLException: unknown protocol https ANS: 使用的方法不是 HTTPS 的方式,將jce.jar與jsse.jar導入classpath,在使用https連線函式 2. 頁面停留過久 ANS: 就像打開IE一樣,會叫你點選接受憑證,這時用程式跑就自動停住了,居然不會timeout … Read More

0 意見: