经过一番研究,我设法从jar文件中的类调用一个方法,如下所示:
URLClassLoader child = new URLClassLoader (new URL[] {(new File("myJar.jar")).toURL()}, Main.class.getClassLoader());
Class<?> classToLoad = Class.forName ("com.myClass.TEST", true, child);
Method method = classToLoad.getDeclaredMethod ("onEnable");
Object instance = classToLoad.newInstance ();
Object result = method.invoke (instance);
TEST课程:
public void onEnable() {
System.out.println(TempClass.TestString);
}
TestString只是“Hello world”而TempClass位于“main”jar中, 和TEST类在myJar.jar中
在调用onEnable()方法时,它会为TempClass抛出NoClassDefError
“Client”jar有没有办法在运行时访问“Main”jar的类路径?
目标是调用“插件”,就像Craftbukkit / Spigot如何与插件一起使用,对于那些玩过它的人来说。