2013-02-15 45 views
0

我正在尋找一個對話框,能夠瀏覽到jar文件的內容(甚至更好地允許我瀏覽文件系統,然後進入jar文件)。是否有一個打開的對話框來選擇Jar內的文件?

理想情況下,對話框應該爲jar和所選資源的url返回一個類加載器。

任何人都可以指向我的一些示例代碼來做到這一點?

謝謝

+0

一個jar文件是一個zip文件。 – assylias 2013-02-15 13:08:58

+0

您可以將文件後綴更改爲.zip,並使用解壓縮將其打開。 – 2013-02-15 13:35:50

回答

1

你需要實現你自己的FileSystemView,將能夠進入ZIP/JAR文件,然後通過這個實施到JFileChooser構造函數。如果您需要更多詳細信息,請隨時提出更多問題。

+0

我希望有一些開箱即用的東西。但這是迄今爲止最好的答案。謝謝。 – PeeWee2201 2013-02-18 08:45:58

-1

JAR基本上是一個zip文件。您可以使用Java的標準ZIP庫打開它。

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 

import java.util.zip.ZipEntry; 
import java.util.zip.ZipInputStream; 

public class JarAccess 
{ 
    public static void main(String[] args) throws IOException 
    { 
     if (args.length != 1) 
     { 
     System.err.println("usage: java JarAccess name_or_your_jar.jar"); 
     return; 
     } 
     try (ZipInputStream zis = 
       new ZipInputStream(new FileInputStream(args[0]))) 
     { 
     byte[] buffer = new byte[4096]; 
     ZipEntry ze; 
     while ((ze = zis.getNextEntry()) != null) 
     { 
      System.out.println("Extracting: "+ze); 
      try (FileOutputStream fos = new FileOutputStream(ze.getName())) 
      { 
       int numBytes; 
       while ((numBytes = zis.read(buffer, 0, buffer.length)) != -1) 
        fos.write(buffer, 0, numBytes); 
      } 
      zis.closeEntry(); 
     } 
     } 
    } 
} 

source

(代碼是未經測試,但在邏輯上它應該工作)

+0

謝謝,但我正在尋找一個對話框,顯示壓縮文件的分層內容,而不是如何讀取流中的內容。我可以自己寫所有這些,但我想這一定已經存在。請注意,您鏈接的文章結尾顯示的內容多多少少。不幸的是,它取決於JavaFX,我正在使用Swing ... – PeeWee2201 2013-02-15 13:29:19

相關問題