diff options
author | Alex <robotbrain@robotbrain.info> | 2015-05-21 17:23:20 -0400 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-06-02 00:11:09 +0200 |
commit | c1f7dda8fe412263ccd82fbf3d56687bd291c73c (patch) | |
tree | 330c9e5c8877cf1d477a05c5a59cf92b9a970c7c /depends/launcher/org/multimc/onesix/MMCClassLoader.java | |
parent | 678c4793f9a7758b50b78b20208685298986dbd3 (diff) | |
download | MultiMC-c1f7dda8fe412263ccd82fbf3d56687bd291c73c.tar MultiMC-c1f7dda8fe412263ccd82fbf3d56687bd291c73c.tar.gz MultiMC-c1f7dda8fe412263ccd82fbf3d56687bd291c73c.tar.lz MultiMC-c1f7dda8fe412263ccd82fbf3d56687bd291c73c.tar.xz MultiMC-c1f7dda8fe412263ccd82fbf3d56687bd291c73c.zip |
NOISSUE redo the launcher part
Diffstat (limited to 'depends/launcher/org/multimc/onesix/MMCClassLoader.java')
-rw-r--r-- | depends/launcher/org/multimc/onesix/MMCClassLoader.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/depends/launcher/org/multimc/onesix/MMCClassLoader.java b/depends/launcher/org/multimc/onesix/MMCClassLoader.java new file mode 100644 index 00000000..6c768ffe --- /dev/null +++ b/depends/launcher/org/multimc/onesix/MMCClassLoader.java @@ -0,0 +1,42 @@ +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.Arrays; +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; + } + + // TODO: use this method to use custom log configs + // @Override + // public URL findResource(String name) + // { + // return super.findResource(name); + // } +} |