補充說明: 尾巴是 .jar 的檔案是蝦密碗糕?    
  
  雖然 .jar 檔案只是與 ZIP 壓縮格式一樣的壓縮檔, 
但是有很多很神奇的用法喔!
請聽蔡神娓娓道來!  

(1)眾所週知(啥? 你說你不知道喔?), 
   早期電腦做備份都是備份(Backup)到磁帶(Tape),
   所以 Unix 系統有個命令 tar, 全名是 Tape ARchive, 阿就是打包到磁帶的意思!
   原先 tar 並沒有規定說一定會做壓縮, 
   但是既然壓縮可以節省空間阿當然也不錯啊! 
       Java 的 JDK 工具箱中當然也提供這類似的工具, jar, 意思是 Java ARchive,  
 可以把整個目錄的子子孫孫通通打包到一個檔案, 用的壓縮方法與 ZIP 壓縮法一樣,
 所以 .jar 檔案其實是 ZIP 檔案, 所以你可以用任何認識 ZIP 檔案的工具處理它,
 例如 pkzip, Winzip, WinRar 等等.
    但是既然 JDK 已經有 jar 這個工具(jar.exe), 阿就用 jar 就好了啊,
 用法與 Unix 的 tar 命令幾乎完全一樣:  
    jar tvf file.jar  可以看看 file.jar 內打包了蝦密碗糕
    jar cvf ggyy.jar hahaha    
           可以把檔案 hahaha  或目錄 hahaha 連同其子孫一起壓縮成 ggyy.jar

    jar xvf ggyy.jar   可以把檔案  ggyy.jar 解壓縮!
    jar xvf ggyy.jar  haha/yyy/G3388.java   
          可以從 ggyy.jar 內把 haha\yy\G3388.java  解壓縮出來  
        請注意下達 jar 命令時不論在 Unix 或 Window, 路徑隔開符號一率用 / 正斜線!  

(2)Java JDK 也被設計成可以把程式庫塞在 .jar 檔案內,
   所以 -classpath 也可以有 .jar 檔, 請在 CMD 窗打 java 看 -classpath 說明!
   例如, 若你 Ha.class 所需的其他 class 檔案放在子目錄 abc 下,
   可以 java -classpath abc Ha
   也可以先把 abc 整個目錄壓縮到 ggg.jar, 然後  
        java -classpath ggg.jar Ha   
(3)上面(2)所說的執行時指定 classpath 的方法也可以改為事先把環境變數 CLASSPATH 設定好,
    例如:  
      set CLASSPATH=ggg.jar;C:\MYLIB;D:\AAA\yyy.jar
      java Ha   
(4)上述(2)與(3)說的  Ha.class 如果也被壓縮在 ggg.jar 內,
   那我們可以用 java -jar ggg.jar   就開始執行 Ha.class  
   但是, 前提是你必須這樣做: 
   (a) 先建立一個文字檔, 檔名隨便, 例如 mm.txt,
       內容有一列這樣:  (就是指定含有 main(String[ ]) 的 class 做為 Main-Class:) 
      Main-Class: Ha    
   (b) 然後做 jar 時要指定  MANIFEST 檔案, 這樣做: (注意 m 參數, CMD 窗打 jar 看看說明) 
        jar cvfm ggg.jar mm.txt *    
       上面這句是說把目前目錄中所有檔案(*)都壓縮到 ggg.jar,
       且建立一個說明檔內容來自 mm.txt  
         該說明檔會在子目錄 META-INF 內, 叫做  MANIFEST.MF   
       請注意, 自己建個 META-INF 並在裡面自己建 MANIFETMF 是沒用的,  
       必須用如上 jar cvfm 指定 說明檔 MANIFEST 的來源檔案才有用!   
    這樣, 以後就可以這樣執行:  
       java -jar ggg.jar   
(5)類似(4), 如果你有 Applet 搭配 HTML 網頁,
   則可以把相關 .class 都壓縮到一個 .jar 檔案例如 yyy.jar
   然後網頁內只要像這樣: (假設 yyy.jar 放在放網頁的目錄下的子目錄  myCOL 之下)  
   <Applet code="Ha.class" archive="./myCOL/yyy.jar">
   </applet>

(6) .jar 檔案還可以被 copy 到 JDK 的 jre/lib/ext  目錄內,
   這樣你的 JDK 就會變成認識該 .jar 檔案的所有 class
   也就是說可以擴充你 JDK 的能力!
  請注意, 是要把.jar檔案 copy 到 JDK 目錄下的  jre/lib/ext  之下,
   不是原先的 JRE 的子目錄下!
 

請點按這裡抓這個 hey.jar 檔案 回去測試看看 這樣: java -jar hey.jar 請注意存檔後可能檔案名稱變成 hey.zip 那當然命令要改為 java -jar hey.zip


這個網頁的 HTML 原始碼如下:

<applet code="HAHAHA" archive="hey.jar"
   width=500 height=580>
</applet>
<hr size=3 color=red> 

阿其實就是指定在 hey.jar 內的 HAHAHA.class 是 Applet 的起點啦