在使用ClassLoader时,如何将参数传递给jar?

时间:2014-09-18 21:55:31

标签: java urlclassloader

这是我的代码

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?

1 个答案:

答案 0 :(得分:0)

有点,你需要使用反射来获得满足你需求的构造函数,比如......

Class[] clazz = classLoader.loadClass("class.MyClass");
Constructor constructor = clazz.getConstructor(String[].class);

获得构造函数后,可以使用Constructor#newInstance创建类的新实例...

Object o = constructor.newInstance(arguments);

作为一个例子......