URLClassLoader

2010-03-09T00:00:00+09:00 Java

JARファイル内にあるリソースやクラスを利用するメモ

import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;

public class Client {
    public static void main(String[] args) throws Exception {
        File f = (File)"sample.jar".getCanonicalFile();
        URL[] url = new URL[]{ f.toURL() };
        URLClassLoader ucl = new URLClassLoader(url,ClassLoader.getSystemClassLoader());

        //クラスの場合
        Class cls = ucl.loadClass("sample.Sample");

        //リソースの場合
        URL res_url = ucl.getResource("hoge.txt");
    }
}

備考

クラス上から動的にクラスパスを追加する

import java.io.File;
import java.net.URLClassLoader

public class Client {
    public static void main(String[] args) throws Exception {
        URLClassLoader ucl = (URLClassLoader)ClassLoader.getSystemClassLoader();
        ucl.addURL(new File("commons-collection.jar").toURL());
    }
}

java.util.Observer varnish (5)