Java如何使用System ClassLoader(没有URLClassLoader)从类路径中的jar加载类



因此,我需要在运行时从类路径中的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();
        }
    }
}

最新更新