jarファイルのコンテンツを参照できるダイアログを探しています(または、ファイルシステムを参照してからjarファイルにアクセスできるようにすることもできます)。
理想的には、ダイアログはjarのクラスローダーと選択したリソースのURLを返す必要があります。
誰かがそれを行うためのサンプルコードを教えてもらえますか?
ありがとう
ZIP/JAR ファイルに入り、この実装をコンストラクターFileSystemView
に渡すことができる、所有する実装が必要です。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();
}
}
}
}
(コードはテストされていませんが、論理的には動作するはずです)