从指定地方加载类(定制ClassLoader)


package com.masf;

import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

public class MyClassloader {

	/**
	 * @param args
	 * @throws MalformedURLException 
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws MalformedURLException {
		//自定义类加载路径
		String path = "file:/D:/classes/";
		//String jarpath = "jar:/D:/lib/";
		
		URL[] urls = {new URL(path)};
		//这里没有指定父类加载器,所以不会有向上委托;这个类加载器,只会在自己指定的路径内寻找类
		ClassLoader loader = new URLClassLoader(urls,null);
		try {
			//在自定义的类加载路径中查找类
			Class classzz = loader.loadClass("com.masf.Person");
			System.out.println("加载路径:"+loader.getResource(""));
			System.out.println("类加载器:"+classzz.getClassLoader());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

}

////////////////////////////////////////////////////////////////////
package com.masf;

public class Person {

}

你可能感兴趣的:(java,jvm)