解析JAR文件格式

JAR的全稱是Java Archive. JAR文件本質上是一個包含了META-INF的ZIP文件。

 

在META-INF目錄下,常見的有MANIFEST.MF、INDEX.LIST(用於索引)、*.sf、*.dsa、*.rsa和sig-*(用於簽名)。

 

J2SE提供瞭解析和生成JAR文件的包:java.util.jar;

在java.util.jar包中,有幾個核心的類:JarEntry、JarFile;

 

JarFile擴展自java.util.zip.ZipFile; JarEntry擴展自java.util.zip.ZipEntry;由此可見JAR和ZIP的關係。

 

首先,用File建立到一個JAR文件的連接,用這個File構建JarFile;然後,從JarFile中獲取枚舉,枚舉中的每一項都是JarEntry;JarEntry的名稱是典型的java包的名稱,例如com.huayu.system.HuayuNative.class文件,它的JarEntry的名稱就是com/huayu/system/HuayuNative.class。

因此,在獲取JarEntry後,創建目錄和文件時,要做一個轉換。此外,獲取JarEntry的輸入流可以從JarFile.getInputStream獲取。

 

代碼如下:

 

createPath方法用於測試創建目錄和文件的方法,結果證明這個方法是不可行的,必須要一級一級地建立目錄和文件,代碼見createPackageFile方法。

 

 

發佈了145 篇原創文章 · 獲贊 4 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章