2015-11-08 29 views
0

我有一個要求,以獲得冬眠配置文件,這是一個內部的JAR文件,再此JAR文件裏面是通過Java編碼一個EAR文件。怎麼去解壓縮EAR> JAR文件通過Java編碼後的Hibernate配置文件

一隻耳朵包含許多jar文件和一個JAR文件包含單個的Hibernate配置文件。

所以結構是什麼,

一隻耳朵 -

## --Jar1 ## 
###  ---Folder Structure, and somewhere in the structure hibernate cfg file resides ### 
    ## --Jar2 ## 
    ### ---Folder structure, and hibernate cfg file ### 
    ##--Jar3 and so on ## 

是我的嘗試是我所使用的Java API的ZipFileInputStream讀者解壓縮EAR文件,但我沒有得到真實路徑(絕對路徑)的Jar文件,這樣我就可以提取Jar文件並獲得我從這些提取層次結構中獲得的hibernate cfg文件。

我能夠做到這直接包含使用Java代碼使用Java API的ZipFileInputStream讀者冬眠CFG文件解壓縮樣本EAR。但我的要求是EAR包含JAR,並且此JAR包含我正在尋找的配置文件。這一切我公司通過Java編程

下面做的事情是對含有.cfg.xml EAR文件的代碼片段。

FileInputStream fis = new FileInputStream("C:/Users/USER/Downloads/ContactManager.ear"); 
     ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); 
     ZipEntry entry = null; String pathName; 
     String fileName; 
     while ((entry = zis.getNextEntry()) != null) { pathName = entry.getName(); 
     if(pathName.endsWith(".cfg.xml")){ System.out.println("path name "+pathName); 

請告訴我最好的方法來完成這項任務。 謝謝,

回答

0

嘗試TrueZip或只是將ZIP文件內容提取到臨時目錄,並嘗試讀取它作爲單獨的ZIP文件。

+0

嗨,感謝您的回覆。但我使用java來通過編碼 – Sandy

+0

@Sandy來完成它,所以請顯示你已經完成(代碼),我會盡力幫助你。 –

+0

FileInputStream fis = new FileInputStream(「C:/Users/USER/Downloads/ContactManager.ear」); ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); ZipEntry entry = null; String pathName; String fileName; 而(!(條目= zis.getNextEntry())= NULL){ 將pathName = entry.getName(); 如果(pathName.endsWith( 「cfg.xml中。 」)){ 的System.out.println(「 路徑名」 + pathName中); – Sandy