diff options
Diffstat (limited to 'depends/launcher')
-rw-r--r-- | depends/launcher/org/multimc/Utils.java | 31 | ||||
-rw-r--r-- | depends/launcher/org/multimc/onesix/OneSixLauncher.java | 17 |
2 files changed, 46 insertions, 2 deletions
diff --git a/depends/launcher/org/multimc/Utils.java b/depends/launcher/org/multimc/Utils.java index ba90c07f..c4d55b6e 100644 --- a/depends/launcher/org/multimc/Utils.java +++ b/depends/launcher/org/multimc/Utils.java @@ -28,6 +28,37 @@ import java.util.List; public class Utils { /** + * Combine two parts of a path. + * @param path1 + * @param path2 + * @return the paths, combined + */ + public static String combine (String path1, String path2) + { + File file1 = new File(path1); + File file2 = new File(file1, path2); + return file2.getPath(); + } + + /** + * Join a list of strings into a string using a separator! + * @param strings the string list to join + * @param separator the glue + * @return the result. + */ + public static String join (List<String> strings, String separator) + { + StringBuilder sb = new StringBuilder(); + String sep = ""; + for(String s: strings) + { + sb.append(sep).append(s); + sep = separator; + } + return sb.toString(); + } + + /** * Adds the specified library to the classpath * * @param s the path to add diff --git a/depends/launcher/org/multimc/onesix/OneSixLauncher.java b/depends/launcher/org/multimc/onesix/OneSixLauncher.java index 2232eeba..f25a3245 100644 --- a/depends/launcher/org/multimc/onesix/OneSixLauncher.java +++ b/depends/launcher/org/multimc/onesix/OneSixLauncher.java @@ -66,7 +66,11 @@ public class OneSixLauncher implements Launcher return -1; } - final ClassLoader cl = ClassLoader.getSystemClassLoader(); + String property = System.getProperty("os.arch"); + List<String> allNativePaths = new ArrayList<String>(); + boolean is_64 = property.equalsIgnoreCase("x86_64") || property.equalsIgnoreCase("amd64"); + allNativePaths.add(natives); + allNativePaths.add(Utils.combine(natives, is_64 ? "64" : "32")); // print the pretty things { @@ -74,6 +78,13 @@ public class OneSixLauncher implements Launcher System.out.println(mainClass); System.out.println(); + System.out.println("Native paths:"); + for (String s : allNativePaths) + { + System.out.println(s); + } + System.out.println(); + System.out.println("Libraries:"); for (String s : libraries) { @@ -96,8 +107,10 @@ public class OneSixLauncher implements Launcher System.out.println(); } + final ClassLoader cl = ClassLoader.getSystemClassLoader(); + // set up the natives path(s). - System.setProperty("java.library.path", natives ); + System.setProperty("java.library.path", Utils.join(allNativePaths, String.valueOf(File.pathSeparatorChar)) ); Field fieldSysPath; try { |