代码之家  ›  专栏  ›  技术社区  ›  Pneumono

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

  •  0
  • Pneumono  · 技术社区  · 9 年前

    主要类

    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文件之后,我取出一个.class。

    然后路径将有一个jar文件,其中缺少a.class和a.class。

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

    如何动态加载和运行一个.class,而不需要对上述代码进行任何更改?

    请帮帮我。。

    2 回复  |  直到 9 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

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

        2
  •  0
  •   Aaron    9 年前

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