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 6
File.tour()中,该方法不推荐使用。但是JavaDoc也被更新了,建议使用
FILE.toURI().tour()
。我会更新答案的。谢谢,它现在找到了