summaryrefslogtreecommitdiff
path: root/platform/java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/java')
-rw-r--r--platform/java/Makefile7
-rw-r--r--platform/java/src/com/artifex/mupdf/fitz/Context.java14
2 files changed, 18 insertions, 3 deletions
diff --git a/platform/java/Makefile b/platform/java/Makefile
index 1762c512..7b4ea380 100644
--- a/platform/java/Makefile
+++ b/platform/java/Makefile
@@ -1,12 +1,15 @@
OS ?= $(shell uname)
ifeq "$(OS)" "Darwin"
-MUPDF_JAVA := libmupdf_java.jnilib
+MUPDF_JAVA := libmupdf_java64.jnilib
JAVA_CFLAGS := \
-I /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include \
-I /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include/darwin
else
-MUPDF_JAVA := libmupdf_java.so
+
+BITS := $(shell getconf LONG_BIT)
+
+MUPDF_JAVA := libmupdf_java$(BITS).so
JAVA_CFLAGS := \
-I /usr/lib/jvm/java-7-openjdk-i386/include \
-I /usr/lib/jvm/java-7-openjdk-i386/include/linux \
diff --git a/platform/java/src/com/artifex/mupdf/fitz/Context.java b/platform/java/src/com/artifex/mupdf/fitz/Context.java
index d8edf378..3ee91822 100644
--- a/platform/java/src/com/artifex/mupdf/fitz/Context.java
+++ b/platform/java/src/com/artifex/mupdf/fitz/Context.java
@@ -15,12 +15,24 @@ public class Context
public static void init() {
if (!inited) {
inited = true;
- System.loadLibrary("mupdf_java");
+ System.loadLibrary(getLibraryName());
if (initNative() < 0)
throw new RuntimeException("cannot initialize mupdf library");
}
}
+ private static String getLibraryName(void) {
+ /* Mac OS always uses 64bit DLLs for any JDK 1.7 or above */
+ if (System.getProperty("os.name").toLowerCase().contains("mac os")) {
+ return "mupdf_java64";
+ }
+ String val = System.getProperty("sun.arch.data.model");
+ if (val != null && val.equals("32")) {
+ return "mupdf_java32"
+ }
+ return "mupdf_java64";
+ }
+
static { init(); }
// FIXME: We should support the store size being changed dynamically.