diff options
author | Keith Packard <keithp@keithp.com> | 2014-10-15 16:10:11 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-10-24 21:24:31 -0700 |
commit | e2562ee43b8558df0836217ea3a187b36e2669b3 (patch) | |
tree | 2b5071d7409ff62a7b90a1c1a3bc04f031658ddb /altosuilib/AltosUILib.java | |
parent | 88df7cd314269fa1debe226b49b7e4e9dc238d8e (diff) |
altosuilib: Try to detect the architecture when loading JNI lib
Look at sun.arch.data.model and os.arch to try and load the right
libaltos file the first time.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosuilib/AltosUILib.java')
-rw-r--r-- | altosuilib/AltosUILib.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/altosuilib/AltosUILib.java b/altosuilib/AltosUILib.java index 8fa7dfe6..ccadf07c 100644 --- a/altosuilib/AltosUILib.java +++ b/altosuilib/AltosUILib.java @@ -82,11 +82,23 @@ public class AltosUILib extends AltosLib { static public boolean loaded_library = false; static public boolean has_bluetooth = false; - static final String[] library_names = { "altos", "altos32", "altos64" }; + static final String[] library_names_32 = { "altos", "altos32", "altos64" }; + static final String[] library_names_64 = { "altos", "altos64", "altos32" }; public static boolean load_library() { if (!initialized) { - for (String name : library_names) { + String model = System.getProperty("sun.arch.data.model", "missing"); + boolean is_64 = false; + if (model.equals("64")) { + is_64 = true; + } else if (model.equals("32")) { + ; + } else { + String arch = System.getProperty("os.arch", "missing"); + if (arch.endsWith("64")) + is_64 = true; + } + for (String name : is_64 ? library_names_64 : library_names_32) { try { System.loadLibrary(name); libaltos.altos_init(); |