使用动态类加载器时ClassNotFoundException

时间:2013-09-09 06:37:05

标签: java

这是一个从Web下载的项目,我只是改变了路径,找到了我想让它动态加载的类。这里是我尝试在运行时加载类的代码。但是我最终得到了一个ClassNotFoundException:

private static IExample newInstanceWithThrows() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
URLClassLoader tmp =
  new URLClassLoader(new URL[] {getClassPath()}) {
  public Class<?> loadClass(String name)
    throws ClassNotFoundException {
    if ("example.Example".equals(name)
        || "example.Leak".equals(name))
      return findClass(name);
    return super.loadClass(name);
  }
};

return (IExample) tmp.loadClass("example.Example")
  .newInstance();


}

  private static URL getClassPath() {
    String dir = "/Users/longtuan/develop/rjc2011/classes/";
    try {
      //return new URL(dir);
        File path = new File(dir);
        return path.toURL();
    } catch (MalformedURLException e) {
      throw new RuntimeException(e);
    }
  }

类class的路径。示例是: /用户/ longtuan /显影/ JAVA / rjc2011 /类/实例

我使用的运行命令是: java -classpath ./bin example.Main

当前目录是: /用户/ longtuan /显影/ JAVA / rjc2011

当前目录的所有内容都是这样的:   enter image description here

示例是我放置所有java文件的目录。我将编译后的类文件放在目录bin中,除了类example.Example,它放在类中孤独。

以上是我能提供的所有信息,感谢您的帮助。

0 个答案:

没有答案