jar包、修改、註釋
jar檔案包與jar命令
JAR(Java Archive File)包是Java中所特有一種壓縮文件,其實大家就可以把它理解為.zip包,準確的說,它就是 ZIP 檔案,所以叫它檔案包。當然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF檔案,當生成JAR包時,它會自動生成。
製作一個可執行的 JAR 檔案包來發布你的程式是 JAR 檔案包最典型的用法。
Java 程式是由若干個 .class 檔案組成的。這些.class 檔案必須根據它們所屬的包不同而分級分目錄存放;執行前需要把所有用到的包的根目錄指定給 CLASSPATH 環境變數或者 java 命令的 -cp 引數;執行時還要到控制檯下去使用 java 命令來執行,如果需要直接雙擊執行必須寫 Windows 的批處理檔案 (.bat) 或者 Linux 的 Shell 程式。因此,許多人說,Java 是一種方便開發者苦了使用者的程式設計語言。
其實不然,如果開發者能夠製作一個可執行的 JAR 檔案包交給使用者,那麼使用者使用起來就方便了。在 Windows 下安裝 JRE (Java Runtime Environment) 的時候,安裝檔案會將 .jar 檔案對映給javaw.exe 開啟。那麼,對於一個可執行的 JAR 檔案包,使用者只需要雙擊它就可以執行程式了,和閱讀 .chm 文件一樣方便 (.chm 文件預設是由 hh.exe 開啟的)。那麼,現在的關鍵,就是如何來建立這個可執行的 JAR 檔案包。
JAR包是由JDK安裝目錄\bin\jar.exe命令生成的(jar是隨 JDK 安裝的,在 JDK 安裝目錄下的 bin 目錄中,Windows下檔名為 jar.exe,Linux 下檔名為jar),當我們安裝好JDK,設定好path路徑,就可以正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。
jar命令格式:jar{ctxu}[vfm0Mi] [jar-檔案] [manifest-檔案] [-C 目錄] 檔名…
其中{ctxu}這四個引數必須選選其一。[v f m 0 M i ]是可選引數,檔名也是必須的。
-c 建立一個jar包
-t 顯示jar中的內容列表
-x 解壓jar包
-u 更新已存在的 JAR 檔案包 (新增檔案到JAR 檔案包中)
-f 指定jar包的檔名
-v 生成詳細的報造,並輸出至標準裝置
-m 指定manifest.mf檔案.(manifest.mf檔案中可以對jar包及其中的內容作一些一設定)
-0 產生jar包時不對其中的內容進行壓縮處理
-M 不產生所有檔案的清單檔案(Manifest.mf)。這個引數與忽略掉-m引數的設定
-i 為指定的jar檔案建立索引檔案
[jar-檔案] 即需要生成、檢視、更新或者解開的 JAR 檔案包,它是-f 引數的附屬引數
[manifest-檔案] 即 MANIFEST 清單檔案,它是-m 引數的附屬引數
-C 表示轉到相應的目錄下執行jar命令,相當於cd到那個目錄,然後不帶-C執行jar命令,它只能在建立和更新 JAR 檔案包的時候可用
檔名 ... 指定一個檔案/目錄列表,這些檔案/目錄就是要新增到JAR 檔案包中的檔案/目錄。如果指定了目錄,那麼 jar 命令打包的時候會自動把該目錄中的所有檔案和子目錄打入包中。
有些 Linux 下提供了 unzip 命令,但沒有 zip 命令,所以需要可以對 ZIP 檔案進行解壓,即不能建立 ZIP 檔案。如要建立一個 ZIP 檔案,使用帶 -M 引數的 jar 命令即可,因為 -M 引數表示製作 JAR 包的時候不新增 MANIFEST 清單,那麼只需要在指定目標 JAR 檔案的地方將 .jar 副檔名改為 .zip 副檔名,建立的就是一個不折不扣的 ZIP 檔案了。
java jar 打包命令
- 打包根目錄下面的檔案:
jar cvf filename.jar a.class b.class
- 打包帶package的檔案:
jarcvf filename.jar foldername
或者
jar cvf filename.jar foldername\*
- 打包可執行jar包:
先配置manifest.mf檔案,內容如下
1. Main-Class: com.TestBean
2. Class-Path: lib\classes12.jar
Main-Class: com.TestBean
指定入口函式,說明預設執行com.TestBean的main函式。
Class-Path: lib\classes12.jar
配置依賴jar包
jar cvfm filename.jar manifest.mf *.class lib\classes12.jar
- 執行方法:
java -jar filename.jar
修改jar包
- 使用解壓縮工具開啟直接修改儲存壓縮包(修改.MF檔案,刪除不需要的.class檔案,增加/替換新.class檔案)
- 使用jar命令解壓,替換,重新打成jar
- 使用jar命令替換jar包中的檔案
- 使用工具jclasslib修改(未親測)
jar uvf test.jar test.class
這樣會直接把test.class 直接新增到jar包的根目錄。
jar uvf test.jar com/test/test.class
這樣就可以替換相應目錄的class檔案了。
這裡值得注意的是 test.class 必須放在com/test 檔案下,要和jar的路徑對應起來。不然會說
沒有這個檔案或目錄。jar 包和 com 資料夾的上級在同一個目錄。
jar umf MANIFEST.MF filename.jar
修改.MF檔案
解壓
jar xvf filename.ja
檢視jar包檔案結構
jar包文件註釋
前提:java文件註釋
- 文件生成:
Export(匯出) -> java下的javadoc,
在Javadoc Generation對話方塊中有兩個地方要注意的:
javadoc command:應該選擇jdk的bin/javadoc.exe
destination:為生成文件的儲存路徑,可自由選擇。
按finish(完成)提交即可開始生成文件。
匯出的時候可能會出現因為亂碼而匯出失敗,給 javadoc.exe 加上編碼引數就OK。具體的:
在Eclipse裡 export 選 JavaDoc,在嚮導的最後一頁的Extra JavaDoc Options 裡填上引數即可
比如專案採用的是UTF-8的編碼就填:-encoding UTF-8 -charset UTF-8
- Eclipse中給jar包匯入JavaDoc註釋文件
jar包以生產註釋文件
1.將jar加入到ReferencedLibraries
2.設定jar的java doc(Javadoc location)
3.Order and Export(調整引用庫的優先順序)
參考:
【1】JAR檔案包及jar命令詳解
【2】把java檔案打包成.jar (jar命令詳解)
【3】java jar 打包命令
【4】替換jar包指定的檔案
【5】直接修改別人jar包裡面的class檔案工具:jclasslib
【6】Javadoc註釋的用法
http://www.cnblogs.com/bluestorm/archive/2012/10/04/2711329.html
【7】Eclipse中 java 註釋文件的生成方法
【8】Eclipse中給jar包匯入JavaDoc註釋文件的方法
https://my.oschina.net/u/1252704/blog/312462
部落格內容僅作學習/交流/參考之用,歡迎大家交流探討;E-Mail:[email protected]tmail.com
如果內容資訊侵犯了您的合法權益,請告知我,我將及時處理。
站在巨人的肩上才能看得更遠,一步一個腳印才能走得更遠。分享成長,交流進步,轉載請註明出處!