PrismLauncher/depends/launcher/org/multimc/onesix/MMCClassLoader.java

36 lines
1.1 KiB
Java
Raw Normal View History

2015-04-05 13:18:08 +01:00
package org.multimc.onesix;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.List;
public class MMCClassLoader extends URLClassLoader
{
public MMCClassLoader(String natives, List<String> allJars)
throws MalformedURLException, ClassNotFoundException, NoSuchMethodException,
InvocationTargetException, IllegalAccessException, NoSuchFieldException
{
super(process(allJars));
Method setProperty =
loadClass("java.lang.System").getMethod("setProperty", String.class, String.class);
setProperty.invoke(null, "java.library.path", natives);
setProperty.invoke(null, "org.lwjgl.librarypath", natives);
setProperty.invoke(null, "net.java.games.input.librarypath", natives);
}
private static URL[] process(List<String> allJars) throws MalformedURLException
{
URL[] urls = new URL[allJars.size()];
for (int i = 0; i < allJars.size(); i++)
{
String jar = allJars.get(i);
urls[i] = new File(jar).toURI().toURL();
}
return urls;
}
}