Java 使用URLClassLoader找不到ClassNotFound
我目前有以下目录树结构:Java 使用URLClassLoader找不到ClassNotFound,java,classloader,classnotfoundexception,Java,Classloader,Classnotfoundexception,我目前有以下目录树结构: CLASSES -> ClassOne ->package -> my ->App.class 我想从本地驱动器加载App.class。我环顾四周,尤其是stackoverflow,大多数人似乎建议我应该使用URLClassLoader 为此,我使用了以下代码: 但是,我得到一个ClassNotFoundError。谁能帮帮我吗 String url = "file://" + cl
CLASSES
-> ClassOne
->package
-> my
->App.class
我想从本地驱动器加载App.class。我环顾四周,尤其是stackoverflow,大多数人似乎建议我应该使用URLClassLoader
为此,我使用了以下代码:
但是,我得到一个ClassNotFoundError。谁能帮帮我吗
String url = "file://" + classOneFolder.getAbsolutePath(); //Where classesFolder is a File representing the ClassOne directory
URL[] urls = {new URL(url)};
urlClassLoader = URLClassLoader.newInstance(urls);
//class loader needs the fully classified class name. Therefore:
Class appClass = urlClassLoader.loadClass("package.my.App");
我建议您使用
classOneFolder.toURI().toURL()
,而不是将URL本身构建为字符串,然后从中重新创建URL。在某些系统(如Windows)上,您需要在绝对文件名的前面添加另一个斜杠,以获得有效的URL。使用应该始终构建正确的URL。我本来打算采用这种方法,但我的IDE告诉我,在Java 6File.tour()中,该方法不推荐使用。但是JavaDoc也被更新了,建议使用FILE.toURI().tour()
。我会更新答案的。谢谢,它现在找到了