日期:2014-05-20 浏览次数:21341 次
public class URLClassLoaderextends SecureClassLoader该类加载器用于从指向 JAR 文件和目录的 URL 的搜索路径加载类和资源。 这里假定任何以 '/' 结束的 URL 都是指向目录的。 如果不是以该字符结束,则认为该 URL 指向一个将根据需要打开的 JAR 文件。
public class Main {
/**
* @param args
* @throws MalformedURLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {
File f = new File("lib");
MyClassLoader loader = new MyClassLoader();
File[] files = f.listFiles();
for(File file: files){
if(file.exists()){
//loader.addFile(file); // A.添加lib下的所有文件到URLClassLoader
System.out.println(file.getAbsolutePath());
}
}
loader.addFile(f); // B.添加 lib目录到URLCLassLoader
System.out.println(loader.getParent());
String className = "org.apache.commons.lang.StringUtils";
loader.loadClass(className);
}
static class MyClassLoader extends URLClassLoader{
public MyClassLoader(URL[] urls) {
super(urls);
}
public MyClassLoader(){
super(new URL[]{});
}
public void addFile(File f) throws MalformedURLException{
this.addURL(f.toURI().toURL());
System.out.println("URL:" + f.toURI().toURL());
}
}
}