文章出處

一、前言                                 

  通過eclipse導出jar包十分方便快捷,但作為碼農豈能滿足GUI的便捷呢?所以一起來CLI吧!

 

二、JAR包                              

  JAR包是基于ZIP文件格式,用于將多個.java文件和各種資源文件,或將多個.class和各種資源打包為一個文件。用于發布,部署,封裝庫、組件和插件程序,從而被編譯器和JVM使用。

 

三、通過jar命令打包                          

  1. 格式 jar [option]* 文件名 

      必選選項(并且僅能選用其中一個)

       -c ,創建一個jar包

       -t ,顯示jar包中的內容列表

     -x ,解壓jar包

       -u ,添加文件到jar包

      可選選項

       -v ,生成詳細報告,并輸出到標準輸出設備

       -m ,用于指定manifest.mf文件。(默認情況下會自動生成META-INF/MANIFEST.MF文件)

       -O ,創建jar包時不對內容進行壓縮

       -M ,不自動產生manifest.mf文件

       -i ,創建jar包時創建META-INF/INDEX.LIST索引文件

       -C ,表示切換到指定目錄來執行jar命令

       -f ,指定jar包的文件路徑

   2. 常用示例

       示例的目錄結構:

/
|-- src
|     |-- test.class
|-- META-INF
|     |-- MAINFEST.MF
|-- MAINFEST.MF
|-- other
      |--additional.class

      命令:

/* 1. 默認打包 */
// 生成的src.jar中就含src目錄和jar自動生成的META-INF目錄(內含MAINFEST.MF清單文件)
jar -cvf src.jar src

/* 2. 查看包內容(jar過大時就無法查看) */
jar -tvf src.jar

/* 3. 解壓jar包 */
jar -xvf src.jar

/* 4. 提取jar包部分內容 */
jar -xvf src.jar src\test.class

/* 5. 追加內容到jar包 */
//追加MAINFEST.MF清單文件以外的文件,會追加整個目錄結構
jar -uvf src.jar other\additional.class

//追加清單文件,會追加整個目錄結構(src.jar會包含META-INF目錄)
jar -uMvf src.jar META-INF\MAINFEST.MF

/* 6. 創建自定義MAINFEST.MF的jar包 */
jar -cMvf src.jar src META-INF

// 通過-m選項配置自定義MAINFEST.MF文件時,自定義MAINFEST.MF文件必須在位于工作目錄下才可以
jar -cmvf MAINFEST.MF src.jar src

 

三、通過Eclipse導出jar                            

   在需導出的包、類上鼠標右鍵點擊“Export”,然后選擇“Java”下的“JAR file”,然后就是各種下一步就OK了。

 

 四、可執行的JAR包                            

    當jar包中包含可執行程序時,就可以通過 java -jar src.jar 命令來執行該可執行程序。打包的過程與上述操作無異,就是多了一步——配置META-INF/MAINFEST.MF文件。

    關于META-INF目錄以及META-INF/MAINFEST.MF清單文件的內容,將在《Java魔法堂:打包知識點之META-INF/MAINFEST.MF》中探討。

    尊重原創,轉載請注明來自:http://www.cnblogs.com/fsjohnhuang/p/4046098.html  ^_^肥仔John

 

參考                                    

http://blog.csdn.net/zhifeiyu2008/article/details/8829637


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()