summaryrefslogtreecommitdiffstats
path: root/depends/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'depends/launcher')
-rw-r--r--depends/launcher/org/multimc/Utils.java31
-rw-r--r--depends/launcher/org/multimc/onesix/OneSixLauncher.java17
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
{