2

2 つの jar ファイルがあります。通常、jarファイルからリソースを「解凍」したい場合は、次のようにします。

    InputStream in = MyClass.class.getClassLoader().getResourceAsStream(name);
    byte[] buffer = new byte[1024];
    int read = -1;
    File temp2 = new File(new File(System.getProperty("user.dir")), name);
    FileOutputStream fos2 = new FileOutputStream(temp2);

    while((read = in.read(buffer)) != -1) {
        fos2.write(buffer, 0, read);
    }
    fos2.close();
    in.close();

同じディレクトリに別の JAR ファイルがある場合はどうなりますか? 同様の方法で 2 番目の JAR ファイル リソースにアクセスできますか? この 2 番目の JAR は実行されないため、独自のクラス ローダーはありません。この 2 番目の JAR ファイルを解凍する唯一の方法はありますか?

4

3 に答える 3

1

使用できますURLClassLoader

URLClassLoader classLoader = new URLClassLoader(new URL[]{new URL("path_to_file//myjar.jar")})
classLoader.loadClass("MyClass");//is requared
InputStream stream = classLoader.getResourceAsStream("myresource.properties");
于 2013-11-08T12:55:09.180 に答える