1 JAR
jar文件是Java標準的歸檔和發佈格式。
它用於applets,servlets,標準之外的GUI應用程序,庫字節碼文件,Java豆和其他。
用JAR來放置配置數據,參數,檢索表,本地化的字符串和其他非代碼資源都是非常合適的。
此外,將這些資源儲存在JAR中你將無需擔心:
(1)文件被移動
(2)本地文件系統的細節。
還能提高性能。例如Java-web上的獨立運行的應用程序,內容被壓縮,下載更統一。
JAR的內部實現是ZIP。只是包含了額外的字段,這些字段將被ZIP解壓工具看做文件和目錄一樣的東西,而JAR工具則能識別他們。
爲了使得JAR中的文件對於 Java有效,需要配置classpath。JAR文件將被當做一個字典對待。放置在jre/lib/ext或jre/lib/endorsed將被自動load.
2 元信息:配置文件和簽名
jar 與zip差別不大,但是它必定包含了一個MANIFEST文件。
MANIFEST文件包含下面這一行:
Manifest-Version: 1.0
其他內容:樣本
Name: com/elharo/awt/Filmstrip.class
Java-Bean: true
Last-modified: 09-07-2005
Depends-On: com/elharo/io/StreamCopier.class
Brad: Majors
Digest-Algorithms: MD5
MD5-Digest: XD4578YEEIK9MGX54RFGT7UJUI9810
3 JAR工具
jdk提供了簡單的命令行工具JAR
4 java.util.jar包
5 JarFile 和 JarEntry
JarFile和ZipFile很相似,但是多了兩個對於Jar纔有的特性方法
public JarEntry getJarEntry(String name)
public Manifest getManifest( ) throws IOException
JarEntry對比ZipEntry也多了兩個方法:
public Attributes getAttributes( ) throws IOException
public Certificate[] getCertificates( )
6 Attributes
Attributes 是一個特殊類型的Map
7 Manifest
可將Manifest看做一個額外的字段
8 JarInputStream 和 JarOutputStream
輸入流可以讀取Manifest,輸出流可以設置Manifest.
9 Pack200
Java5 引入的新的格式,用於壓縮jar文件。