2012-02-10 47 views
0

我想訪問存儲庫上的jar文件,在其中搜索特定文件,檢索這些文件並將它們存儲在我的硬盤上。我不想下載整個罐子然後搜索它。從存儲庫中獲取Jar中的文件,而無需從Java下載整個Jar

所以我們假設我有Jar的地址。有人可以爲我提供其他問題的代碼嗎?

public void searchInsideJar(final String jarUrl, final String artifactId, 
     final String artifactVersion) { 
    InputStream is = null; 
    OutputStream outStream = null; 
    JarInputStream jis = null; 
    int i = 1; 
    try { 
     String strDirectory = "C:/Users/ilijab/" + artifactId +artifactVersion; 

     // Create one directory 
     boolean success = (new File(strDirectory)).mkdir(); 
     if (success) { 
      System.out.println("Directory: " + strDirectory + " created"); 
     } 

     is = new URL(jarUrl).openStream(); 
     jis = new JarInputStream(is); 

     while (true) { 
      JarEntry ent = jis.getNextJarEntry(); 
      if (ent == null) { 
       break; 
      } 
      if (ent.isDirectory()) { 
       continue; 
      } 
      if (ent.getName().contains("someFile")) { 
       outStream = new BufferedOutputStream(new FileOutputStream(
         strDirectory + "\\" + "someFile" + i)); 
       while(ent.) 
       System.out.println("**************************************************************"); 
       System.out.println(i); 
       i++; 
      } 
     } 
    } catch (Exception ex) { 
    } 
} 

因此,在上面的代碼中,如何將我找到的文件(最後一個if)保存到目錄中。

+0

「存儲庫」是什麼意思?一個Maven倉庫? – 2012-02-10 16:36:44

回答

1

假設通過「存儲庫」,你的意思是一個Maven倉庫,那麼恐怕這是不能做到的。 Maven倉庫可讓您下載工件,如jar文件,但不會爲您查看它們。