summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-02-13 23:20:28 +0100
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2014-02-18 15:03:50 +0100
commit3232b29c4ca79724b04586e161c3a1938bf25f07 (patch)
treeb46f659572a09c6eb78f27e73094b5124825460f
parent1190320874559a74ee5bcaa52983ca779eb874ca (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.java9
-rw-r--r--jurt/com/sun/star/lib/util/NativeLibraryLoader.java11
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: