如何用URLClassLoader来加载一个指定目录下的class类

直接插入我的代码:

public class ServletProcessor1 {

	public void process(Request request, Response response) {
		// TODO Auto-generated method stub
		String uri = request.getUri();
		System.out.println(uri);
		String servletName = uri.substring(uri.lastIndexOf("/")+1);
		URLClassLoader loader = null;
		try{
			URL[] urls = new URL[1];
			URLStreamHandler streamHandler = null;
			File classPath = new File(Constants.WEB_ROOT);
			
			String repository = (new URL("file",null,classPath.getCanonicalPath()+File.separator)).toString();
			urls[0] = new URL(null,repository,streamHandler);
			loader = new URLClassLoader(urls);
		}catch(IOException e){
			e.printStackTrace();
		}
		Class myClass = null;
		try{
			myClass = loader.loadClass(servletName);
		}catch(ClassNotFoundException e){
			System.out.println(e.toString());
		}
		Servlet servlet = null;
		try{
			servlet = (Servlet)myClass.newInstance();
			servlet.service((ServletRequest)request, (ServletResponse)response);
		}catch(Exception e){
			System.out.println(e.toString());			
		}
	}
}

 运行时,总发现 myClass = loader.loadClass(servletName); 报错,

"servletName" 是有WebRoot/WEb-INF/CLASS文件下是有的,

不过在com/servlet_/test/包下面.

 

请高手赐教,急呀!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值