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

时间:2012-02-10 00:05:45

标签: java system classloader urlclassloader

因此,我需要在运行时使用System ClassLoader从类路径中的jar中加载一些类,但每次尝试时,我都会得到一个ClassNotFoundException。使用System ClassLoader,我能做到:xyclassineed(x和y是包)还是我必须做类似:pathtox.xyclassineed,假设它甚至可以这样做?

1 个答案:

答案 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();
        }
    }
}