是否有一个打开的对话框来选择Jar中的文件?

时间:2013-02-15 13:05:13

标签: java jar

我正在寻找一个能够浏览jar文件内容的对话框(甚至可以更好地浏览文件系统,然后进入jar文件)。

理想情况下,对话框应返回jar的类加载器和所选资源的url。

有人能指点我做一些示例代码吗?

由于

2 个答案:

答案 0 :(得分:1)

您需要实现自己的FileSystemView,它将能够进入ZIP / JAR文件,然后将此实现传递给JFileChooser构造函数。如果您需要更多详细信息,请随时提出更多问题。

答案 1 :(得分:-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

(代码未经测试,但逻辑上应该可以使用)