Inceptum/wrapper/src/main/java/io/gitlab/jfronny/inceptum/WrapperStrap.java

25 lines
1.1 KiB
Java
Raw Normal View History

package io.gitlab.jfronny.inceptum;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import java.net.URLClassLoader;
public class WrapperStrap {
private static final ClassLoader cl = Thread.currentThread().getContextClassLoader();
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
System.out.println("Starting Inceptum Wrapper ClassLoader");
switchEnv(WrapperStrap.class.getProtectionDomain().getCodeSource().getLocation(),
"io.gitlab.jfronny.inceptum.Wrapper",
args);
}
public static void switchEnv(URL url, String mainClass, String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
ClassLoader cl = new URLClassLoader(new URL[] {url}, WrapperStrap.cl);
Thread.currentThread().setContextClassLoader(cl);
cl
.loadClass(mainClass)
.getDeclaredMethod("main", String[].class)
.invoke(null, new Object[] {args});
}
}