Как я могу передать параметры банке, используя ClassLoader?
Вот мой код
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?
1 ответ
Решение
Вроде того, вам нужно использовать отражение, чтобы получить конструктор, который соответствует вашим потребностям, что-то вроде...
Class[] clazz = classLoader.loadClass("class.MyClass");
Constructor constructor = clazz.getConstructor(String[].class);
Получив конструктор, вы можете создать новый экземпляр класса, используя Constructor#newInstance
...
Object o = constructor.newInstance(arguments);
В качестве примера...