gpt4 book ai didi

java - 如何在运行时动态加载 JAR 文件?

转载 作者:bug小助手 更新时间:2023-10-28 10:38:38 26 4
gpt4 key购买 nike

为什么在 Java 中做到这一点如此困难?如果您想拥有任何类型的模块系统,您需要能够动态加载 JAR 文件。有人告诉我有一种方法可以通过编写自己的 ClassLoader 来做到这一点,但是对于应该(至少在我看来)像使用 JAR 调用方法一样简单的事情,这需要做很多工作文件作为它的参数。

对执行此操作的简单代码有什么建议吗?

最佳答案

难的原因是安全性。类加载器是不可变的;您不应该在运行时随意添加类。实际上,我对使用系统类加载器感到非常惊讶。以下是制作自己的子类加载器的方法:

URLClassLoader child = new URLClassLoader(
new URL[] {myJar.toURI().toURL()},
this.getClass().getClassLoader()
);
Class classToLoad = Class.forName("com.MyClass", true, child);
Method method = classToLoad.getDeclaredMethod("myMethod");
Object instance = classToLoad.newInstance();
Object result = method.invoke(instance);

很痛苦,但就是这样。

关于java - 如何在运行时动态加载 JAR 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com