0

我正在寻找一个能够浏览到 jar 文件内容的对话框(或者更好地允许我浏览文件系统然后进入 jar 文件)。

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

任何人都可以指出一些示例代码来做到这一点吗?

谢谢

4

2 回答 2

1

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

于 2013-02-15T14:12:36.103 回答
-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();
         }
      }
   }
}

来源

(代码未经测试,但从逻辑上讲它应该可以工作)

于 2013-02-15T13:11:41.457 回答