diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-02-13 23:20:28 +0100 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2014-02-18 15:03:50 +0100 |
commit | 3232b29c4ca79724b04586e161c3a1938bf25f07 (patch) | |
tree | b46f659572a09c6eb78f27e73094b5124825460f | |
parent | 1190320874559a74ee5bcaa52983ca779eb874ca (diff) |
More java.lang.System.mapLibraryName dylib vs. jnilib confusion
...like a76261ac9e40eb57e942db2c7aea8b8a5e904ff2
Change-Id: I803dc81344efb5e8021d9ef4146c06ecf82ca63b
(cherry picked from commit 0d396800021684a8c0875e45ed1440011fd7f9b0)
Reviewed-on: https://gerrit.libreoffice.org/8041
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Björn Michaelsen <bjoern.michaelsen@canonical.com>
-rw-r--r-- | bean/com/sun/star/beans/LocalOfficeConnection.java | 9 | ||||
-rw-r--r-- | jurt/com/sun/star/lib/util/NativeLibraryLoader.java | 11 |
2 files changed, 19 insertions, 1 deletions
diff --git a/bean/com/sun/star/beans/LocalOfficeConnection.java b/bean/com/sun/star/beans/LocalOfficeConnection.java index b742fb3a7027..9bf73b429169 100644 --- a/bean/com/sun/star/beans/LocalOfficeConnection.java +++ b/bean/com/sun/star/beans/LocalOfficeConnection.java @@ -78,6 +78,15 @@ public class LocalOfficeConnection // load libofficebean.so/officebean.dll String aSharedLibName = getProgramPath() + java.io.File.separator + System.mapLibraryName(OFFICE_LIB_NAME); + // At least Oracle's 1.7.0_51 now maps to .dylib rather than .jnilib: + if (System.getProperty("os.name").startsWith("Mac") + && aSharedLibName.endsWith(".dylib")) + { + aSharedLibName + = aSharedLibName.substring( + 0, aSharedLibName.length() - "dylib".length()) + + "jnilib"; + } System.load( aSharedLibName ); } diff --git a/jurt/com/sun/star/lib/util/NativeLibraryLoader.java b/jurt/com/sun/star/lib/util/NativeLibraryLoader.java index 9a98cfcd7024..749dcb1378c3 100644 --- a/jurt/com/sun/star/lib/util/NativeLibraryLoader.java +++ b/jurt/com/sun/star/lib/util/NativeLibraryLoader.java @@ -43,7 +43,16 @@ public final class NativeLibraryLoader { library name is system dependent */ public static void loadLibrary(ClassLoader loader, String libname) { - File path = getResource(loader, System.mapLibraryName(libname)); + String sysname = System.mapLibraryName(libname); + // At least Oracle's 1.7.0_51 now maps to .dylib rather than .jnilib: + if (System.getProperty("os.name").startsWith("Mac") + && sysname.endsWith(".dylib")) + { + sysname + = sysname.substring(0, sysname.length() - "dylib".length()) + + "jnilib"; + } + File path = getResource(loader, sysname); if (path == null) { // If the library cannot be found as a class loader resource, try // the global System.loadLibrary as a last resort: |