我正在寻找一个能够浏览到 jar 文件内容的对话框(或者更好地允许我浏览文件系统然后进入 jar 文件)。
理想情况下,对话框应返回 jar 的类加载器和所选资源的 url。
任何人都可以指出一些示例代码来做到这一点吗?
谢谢
您需要实现您拥有的FileSystemView
能够进入 ZIP/JAR 文件的实现,然后将此实现传递给JFileChooser
构造函数。如果您需要更多详细信息,请随时提出更多问题。
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();
}
}
}
}
(代码未经测试,但从逻辑上讲它应该可以工作)