gpt4 book ai didi

java - 我将如何解决这个类加载器问题?

转载 作者:行者123 更新时间:2023-12-04 05:29:43 27 4
gpt4 key购买 nike

首先让我说我在 Java 方面不是最好的,所以我可能错过了一些非常简单的东西......

我正在开发一个插件系统,在 eclipse 中一切正常,但当我在它之外实际启动小程序时却没有。

我正在尝试加载 .class目录中的文件并执行它,我知道为什么它不起作用我只是不知道该怎么做来解决它。

问题是 Eclipse 在类路径中引用了小程序本身,但它没有在 eclipse 之外的类路径中被引用,我无权访问 -cp-classpath ,我只能通过一个旨在用固定的类路径加载 jar 的启动器来启动它。

关于如何解决这个问题的任何想法?

装载机代码:

final ClassLoader loader = new URLClassLoader(new URL[] { new File("C:/Plugin/Directory/").toURI().toURL() });
final Class<?> c = loader.loadClass("PluginFile");
Object s = c.newInstance();
s.getClass().getMethod("onLoad").invoke(s);

插件代码:
import net.plugintest.pluginsystem.*;

public class PluginFile extends ClientPlugin
{
private String Author = "Plugin Author";
private String Description = "Plugin Description"
private Player p = new Player();

@Override
public void onLoad()
{
p.talk("Testing");
}
}

这个问题已经把我逼上了一个星期,我不知道该怎么办。 :/

最佳答案

我不确定,但尝试为您创建的类加载器提供父类加载器,例如:

ClassLoader parent = Thread.currentThread().getContextClassLoader();
// or
// ClassLoader parent = getClass().getClassLoader();
ClassLoader loader = new URLClassLoader(new URL[] { new File("C:/Plugin/Directory/").toURI().toURL() }, parent);

关于java - 我将如何解决这个类加载器问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777311/

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