新建一个java类:
package java.test;
/**
* 需要被加载的测试类
* @author Administrator
*/
public class TestOne{
/**
* 测试方法
*/
public void sayHello(){
//在控制台输出信息
System.out.println("hello, I'm here");
}
}
编写测试方法
//声明一个URLClassLoader类的实例对象
URLClassLoader classLoader = null;
try{
URL[] urls = new URL[1];
URLStreamHandler streamHandler = null;
//webroot是当前项目下的一个目录,用来存放测试的class文件
File classPath = new File(System.getProperty("user.dir") + File.separator + "webroot");
String res = (new ULR("file", null, classPath.getCanonicalPath() + File.separator)).toString();
urls[0] = new URL(null, res, streamHandler);
//用于加载时的路径,相当于将你指定的目录加载到了CLASSPATH中。
classLoader = new URLClassLoader(urls);
} catch(Exception e){
System.out.println(e.toString());
}
Class myclass = null;
try{
//必须使用全名,即需要包含包名。
myclass = classLoader.loadClass("java.test.TestOne");
TestOne tests = (TestOne)myclass.newInstance();
tests.sayHello();
} catch (Exception e){
e.printStackTrace();
}
如果TestOne是带包名的话, 如java.test, 则在bin/java/test目录下有TestOne.class文件, 将其复制到webroot/java/test目录下, 而不是webroot目录同时res中的那个路径就是webroot的目录