因此,我需要在运行时从类路径中的jar中使用System ClassLoader加载一些类,但每次尝试时,我都会收到ClassNotFoundException。使用System ClassLoader,我是否可以只执行:x.y.classineed(x和y是包),或者我是否必须执行类似于:pathtox.y.classlineed的操作,假设这样做是可能的?
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();
}
}
}