码迷,mamicode.com
首页 > 其他好文 > 详细

关于ClassLoader的一点小问题

时间:2016-08-16 14:39:07      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

  今天在看某框架的源码的时候,遇到一个使用URLClassLoader加载Servlet类的问题,当自己在eclipse里面做试验的时候,始终无法把Class加载成功。比如:

        ClassLoader cl = new URLClassLoader(new URL[] {new URL("file:E:/xxx/src/main/java/primitive/servlet/")});
        Class<?> c = cl.loadClass("xxxServlet");

  究其原因,我们在new URL的时候,路劲应该是除了包以外的路劲,比如上面的E:/xxx/src/main/java/primitive/servlet/是我们的eclipse工作空间路劲加上包构成的完整路径,但是这样不行,而应该是E:/xxx/src/main/java/这样子,后面cl.loadClass("primitive/servlet/xxxServlet")这样带上包名的结构。所以改成如下就可以了。

        URL url = new URL("file:E:/eclipse-mars-workspace/tomcat-core/src/main/java");
        URLClassLoader cl = new URLClassLoader(new URL[] {url});
        Class<?> c = cl.loadClass("primitive.servlet.PrimitiveServlet");
    *注意:路径是以 "/"分割,而包名是以 "."分割

     Reference:http://inexus.iteye.com/blog/800188

关于ClassLoader的一点小问题

标签:

原文地址:http://www.cnblogs.com/dreamroute/p/5776230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!