Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么URLClassLoader不加载类?_Java_Classloader_Urlclassloader - Fatal编程技术网

Java 为什么URLClassLoader不加载类?

Java 为什么URLClassLoader不加载类?,java,classloader,urlclassloader,Java,Classloader,Urlclassloader,我已经下载了aspectJ.jar文件,并将其解压缩到一个临时目录中(该jar文件仅用于测试目的)。 我有以下代码: public class TestUrlClassLoader { public static void main(String [] args) throws MalformedURLException, ClassNotFoundException { File file = new File("C:\\temp\\org\\aspectj\\lang

我已经下载了
aspectJ.jar
文件,并将其解压缩到一个临时目录中(该jar文件仅用于测试目的)。 我有以下代码:

public class TestUrlClassLoader {
    public static void main(String [] args) throws MalformedURLException, ClassNotFoundException {
        File file = new File("C:\\temp\\org\\aspectj\\lang\\JoinPoint.class");
        URLClassLoader loader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});
        Class<?> aClass = loader.loadClass("org.aspectj.lang.JoinPoint");
        System.out.println(aClass.toString());
    }
}
公共类TestUrlClassLoader{
publicstaticvoidmain(字符串[]args)引发畸形的DurLexException,ClassNotFoundException{
File File=新文件(“C:\\temp\\org\\aspectj\\lang\\JoinPoint.class”);
URLClassLoader=URLClassLoader.newInstance(新URL[]{file.toURI().toURL()});
类aClass=loader.loadClass(“org.aspectj.lang.JoinPoint”);
System.out.println(aClass.toString());
}
}

存在一个类为
JoinPoint
的文件,但我得到一个
ClassNotFoundException
。有人能帮我吗?

根据
URLClassLoader
的javadoc

[...] (URLClassLoader) is used to load classes and resources from a search path of URLs referring to both JAR files and directories. Any URL that ends with a '/' is assumed to refer to a directory. Otherwise, the URL is assumed to refer to a JAR file which will be opened as needed.
您应该删除到
JoinPoint.class的完整路径,并尝试添加到类路径的目录,例如

File file = new File("C:\\temp");
URLClassLoader loader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});
参考javadoc: