【问题标题】:Java How to load classes out of a jar in the classpath with the System ClassLoader (no URLClassLoader)?Java 如何使用 System ClassLoader(无 URLClassLoader)从类路径中的 jar 中加载类?
【发布时间】:2012-02-10 00:05:44
【问题描述】:

所以,我需要在运行时使用 System ClassLoader 从类路径中的 jar 中加载一些类,但每次尝试时,我都会收到 ClassNotFoundException。使用系统类加载器,我可以只做:x.y.classineed(x 和 y 是包)还是我必须做类似的事情:pathtox.x.y.classineed,假设甚至可以做到这一点?

【问题讨论】:

  • “我需要在运行时使用 System ClassLoader 从类路径中的 jar 中加载一些类,” 为什么?您真正想要实现的目标是什么?

标签: java system classloader urlclassloader


【解决方案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();
        }
    }
}

【讨论】:

  • +1 用于使用类的类加载器。使用 System 类加载器几乎从来都不是正确的决定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多