25 lines
1.1 KiB
Java
25 lines
1.1 KiB
Java
|
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});
|
||
|
}
|
||
|
}
|