zoukankan      html  css  js  c++  java
  • 关于ClassLoader的一点小问题

      今天在看某框架的源码的时候,遇到一个使用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

  • 相关阅读:
    C++小记
    滑窗问题总结
    leetcode 350 easy
    C++中的 istringstream 的用法
    leetcode 235-290 easy
    leetcode 198-234 easy
    CNN 常用的几个模型
    leetcode 60-80 easy
    python 正则的使用例子和goupby
    leetcode 31-40 easy
  • 原文地址:https://www.cnblogs.com/dreamroute/p/5776230.html
Copyright © 2011-2022 走看看