我正在寻找一个能够浏览jar文件内容的对话框(甚至可以更好地浏览文件系统,然后进入jar文件)。
理想情况下,对话框应返回jar的类加载器和所选资源的url。
有人能指点我做一些示例代码吗?
由于
答案 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();
}
}
}
}
(代码未经测试,但逻辑上应该可以使用)