|
@@ -355,19 +355,20 @@ public final class NativeLibraryLoader {
|
|
|
// Determine what filename it should be extracted as.
|
|
|
String loadedAsFileName;
|
|
|
if (library.isJNI()) {
|
|
|
- String nameWithArch;
|
|
|
+ // JNI libraries on Mac / JDK6 use jnilib extension.
|
|
|
+ // JNI libraries on Mac / JDK7 use dylib extension.
|
|
|
+ String fileNameInJarWithoutExtension
|
|
|
+ = fileNameInJar.substring(0, fileNameInJar.lastIndexOf("."));
|
|
|
|
|
|
- // Append "64" to path
|
|
|
- // so that we don't overwrite the 32-bit version.
|
|
|
- if (platform.is64Bit()) {
|
|
|
- nameWithArch = name + "64";
|
|
|
+ String systemJniExtension;
|
|
|
+ String dummyLib = System.mapLibraryName("");
|
|
|
+ if (dummyLib.contains(".")) {
|
|
|
+ systemJniExtension = dummyLib.substring(dummyLib.lastIndexOf("."));
|
|
|
} else {
|
|
|
- nameWithArch = name;
|
|
|
+ systemJniExtension = "";
|
|
|
}
|
|
|
|
|
|
- // JNI libraries on Mac / JDK6 use jnilib extension.
|
|
|
- // JNI libraries on Mac / JDK7 use dylib extension.
|
|
|
- loadedAsFileName = System.mapLibraryName(nameWithArch);
|
|
|
+ loadedAsFileName = fileNameInJarWithoutExtension + systemJniExtension;
|
|
|
} else {
|
|
|
// Not a JNI library.
|
|
|
// Just use the original filename as it is in the JAR.
|