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: