这是一个从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
当前目录的所有内容都是这样的:
示例是我放置所有java文件的目录。我将编译后的类文件放在目录bin中,除了类example.Example,它放在类中孤独。
以上是我能提供的所有信息,感谢您的帮助。