日期:2014-05-20 浏览次数:21008 次
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()); } } }