URLClassLoader没有检查jar

时间:2011-07-09 17:32:08

标签: java

我有以下代码段

URL url = new File("c:/work/projects/jars/").toURI().toURL();
URL[] urls = new URL[]{url};
URLClassLoader child = new URLClassLoader(urls, this.getClass().getClassLoader());
URL res = child.findResource("temp.txt");
cls = child.loadClass("com.foo.adapter.sample.PluginImpl");

jars文件夹包含一个文本文件“temp.txt”和一个包含PluginImpl类的jar文件。资源已加载但类不是。 当我将jar的内容提取到文件夹时,类正在加载。 我哪里错了?

1 个答案:

答案 0 :(得分:2)

您必须将JAR本身添加到类路径中。 JVM区分资源和JAR。这应该有效:

URL url1 = new File("c:/work/projects/jars/").toURI().toURL(); // resources
URL url2 = new File("c:/work/projects/jars/myjar.jar").toURI().toURL(); // jar
URL[] urls = new URL[]{url1, url2};