在运行时更改系统 class 加载程序

Change the system class loader at runtime

主要class

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

一个class

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

我已经在调用 class A

的 msg() 方法的主 class 中编写了代码

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

然后该路径将有一个缺少 A.class 和 A.class.

的 jar 文件
A a = new A();
a.msg();

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

请帮帮我..

A.class 必须位于 class 路径中的某处,代码才能到达 运行。您可以将它放在自己的罐子中,然后将第二个罐子添加到 class 路径。然后 class 加载程序可以找到它。

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