这是我的代码
package serverloader;
import java.net.URL;
import java.net.URLClassLoader;
public class ServerLoader {
public void initiate(String[] arguments) throws Exception {
System.out.println("Initiating...");
URL link = new URL("link");
URLClassLoader classLoader = new URLClassLoader(new URL[]{link});
Object o = classLoader.loadClass("class.MyClass").newInstance();
System.out.println("Loaded, starting...");
}
}
这是加载我的实际应用程序的加载程序,但由于某种原因它没有启动,我相信它是因为启动应用程序所需的参数是在这里加载,所以如何传递参数,这是
String[] arguments
到ClassLoader加载的jar?
答案 0 :(得分:0)
有点,你需要使用反射来获得满足你需求的构造函数,比如......
Class[] clazz = classLoader.loadClass("class.MyClass");
Constructor constructor = clazz.getConstructor(String[].class);
获得构造函数后,可以使用Constructor#newInstance
创建类的新实例...
Object o = constructor.newInstance(arguments);
作为一个例子......