`
美丽的小岛
  • 浏览: 298901 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

URLClassLoader例子

    博客分类:
  • java
 
阅读更多

学着写一个servlet服务器,里面对servlet的处理就得把那个servlet动态加载进来后,然后再去调用用它的service方法,这样就能实现了用户写的业务了。这里记录一个把类加载入来,然后执行这个类。用URLClassLoader来加载。

首先在src中写一个test类,或接口也可以:

package com.lr.test;

public class test {
	public void show() {
		System.out.println("test:show()************************");
	}

}

 

写要加载的类(因为这个类应该是用户写的,放在src外的文件夹中,像下图放在webroot文件夹中,

 继承的那个test是在文件夹src里的,就好像Servlet):

import com.lr.test.test;

public class MyClass extends test {
	public void show() {
		System.out.println("MyClass:show() is test Loader!");
	}
}

写一个测试类:

package com.lr.junit.MyServer02;

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

import junit.framework.TestCase;

import com.lr.test.test;

public class testClassLoader extends TestCase {
	public void testLoader() throws Throwable, Exception {
		URL[] urls = new URL[1];
		URLStreamHandler streamHandler = null;
		File classPath = new File(System.getProperty("user.dir")
				+ File.separator + "webroot");
		String repository = (new URL("file", null, classPath.getCanonicalPath()
				+ File.separator)).toString();
		urls[0] = new URL(null, repository, streamHandler);
		URLClassLoader loader = new URLClassLoader(urls);// 
		Class<?> myClass = loader.loadClass("MyClass");
		test t = (test) myClass.newInstance();// 实例化一个对象
		t.show();
	}
}

 测试结果为:

MyClass:show() is test Loader!

 

  • 大小: 4.4 KB
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics