在运行时更改系统类加载器

时间:2017-01-01 23:19:59

标签: java classloader

主要课程

public class Main {
    public static void main(String[] args) {
        // Class load
        A a = new A();
        a.msg();
    }
}

一个班级

public class A {
    public void msg() {
      System.out.println("msg");
    }
}

我在主类中编写了一个调用类A

的msg()方法的代码

创建jar文件后,我拔出A.class。

然后路径将有一个缺少A.class和A.class的jar文件。

A a = new A();
a.msg();

如何在不对上述代码进行任何更改的情况下动态加载和运行A.class?

请帮帮我..

2 个答案:

答案 0 :(得分:0)

A.class必须位于类路径的某个地方才能运行代码。你可以将它放在自己的jar中,并将第二个jar添加到类路径中。然后类加载器可以找到它。

答案 1 :(得分:0)

看起来你想动态加载一个类。我建议你创建一个jar并使用URIClassLoader加载它。这里有一个非常好的答案: - How should I load Jars dynamically at runtime?