因此,我需要在运行时使用System ClassLoader从类路径中的jar中加载一些类,但每次尝试时,我都会得到一个ClassNotFoundException。使用System ClassLoader,我能做到:xyclassineed(x和y是包)还是我必须做类似:pathtox.xyclassineed,假设它甚至可以这样做?
答案 0 :(得分:1)
JAR不能在您的CLASSPATH中。
这很好用:我的CLASSPATH中有JDOM JAR。
package cruft;
/**
* ClassLoaderDemo
* @author Michael
* @since 2/9/12 7:09 PM
* @link http://stackoverflow.com/questions/9220887/java-how-to-load-classes-out-of-a-jar-in-the-classpath-with-the-system-classload
*/
public class ClassLoaderDemo {
public static void main(String[] args) {
try {
ClassLoader classLoader = ClassLoaderDemo.class.getClassLoader();
if (classLoader != null) {
Class clazz = classLoader.loadClass("org.jdom.Document");
System.out.println(clazz.getName());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}