让我先说我在 Java 方面不是最好的,所以我可能错过了一些非常简单的东西......
我正在开发一个插件系统,并且在 Eclipse 中一切正常,但当我实际在它之外启动小程序时却没有。
我正在尝试.class
从目录加载文件并执行它,我知道它为什么不起作用我只是不知道该怎么做才能解决它。
问题是 Eclipse 在类路径中引用了小程序本身,但它没有在 eclipse 之外的类路径中被引用,我无权访问-cp
or -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");
}
}
这个问题已经困扰我一个星期了,我不知道该怎么办。:/