-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Description
JNA cannot load a system library on Mac with OpenJDK 14 (but works fine with 11 and 13).
The library is installed via Homebrew, and is accessible from /usr/local/lib
:
ls -lah /usr/local/lib/libsodium.dylib
lrwxr-xr-x 1 user admin 48B Nov 28 14:30 /usr/local/lib/libsodium.dylib -> ../Cellar/libsodium/1.0.18_1/lib/libsodium.dylib
Logs of JNA load attempts:
On 14 (failing):
???. 06, 2020 5:46:27 PM com.sun.jna.Native extractFromResourcePath
INFO: Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@55054057 for /com/sun/jna/darwin/libjnidispatch.jnilib
???. 06, 2020 5:46:27 PM com.sun.jna.Native extractFromResourcePath
INFO: Found library resource at jar:file:/Users/user/.m2/repository/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar!/com/sun/jna/darwin/libjnidispatch.jnilib
???. 06, 2020 5:46:27 PM com.sun.jna.Native extractFromResourcePath
INFO: Extracting library to /Users/user/Library/Caches/JNA/temp/jna3004104893156453390.tmp
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Looking for library 'sodium'
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Adding paths from jna.library.path: null
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Trying libsodium.dylib
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Loading failed with message: dlopen(libsodium.dylib, 9): image not found
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Adding system paths: [/usr/lib, /usr/lib]
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Trying libsodium.dylib
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Loading failed with message: dlopen(libsodium.dylib, 9): image not found
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Looking for matching frameworks
???. 06, 2020 5:46:27 PM com.sun.jna.Native extractFromResourcePath
INFO: Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@55054057 for sodium
???. 06, 2020 5:46:27 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Loading failed with message: Native library (darwin/libsodium.dylib) not found in resource path (/Users/user/Documents/jna-lib-loading-test/target/test-classes:/Users/user/Documents/jna-lib-loading-test/target/classes:/Users/user/.m2/repository/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter/5.6.1/junit-jupiter-5.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.6.1/junit-jupiter-api-5.6.1.jar:/Users/user/.m2/repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar:/Users/user/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/user/.m2/repository/org/junit/platform/junit-platform-commons/1.6.1/junit-platform-commons-1.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.6.1/junit-jupiter-params-5.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.6.1/junit-jupiter-engine-5.6.1.jar:/Users/user/.m2/repository/org/junit/platform/junit-platform-engine/1.6.1/junit-platform-engine-1.6.1.jar:)
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.13 s <<< FAILURE! - in org.example.SodiumTest
[ERROR] testInit Time elapsed: 0.12 s <<< ERROR!
java.lang.UnsatisfiedLinkError:
Unable to load library 'sodium':
dlopen(libsodium.dylib, 9): image not found
dlopen(libsodium.dylib, 9): image not found
Native library (darwin/libsodium.dylib) not found in resource path (/Users/user/Documents/jna-lib-loading-test/target/test-classes:/Users/user/Documents/jna-lib-loading-test/target/classes:/Users/user/.m2/repository/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter/5.6.1/junit-jupiter-5.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.6.1/junit-jupiter-api-5.6.1.jar:/Users/user/.m2/repository/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar:/Users/user/.m2/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar:/Users/user/.m2/repository/org/junit/platform/junit-platform-commons/1.6.1/junit-platform-commons-1.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.6.1/junit-jupiter-params-5.6.1.jar:/Users/user/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.6.1/junit-jupiter-engine-5.6.1.jar:/Users/user/.m2/repository/org/junit/platform/junit-platform-engine/1.6.1/junit-platform-engine-1.6.1.jar:)
at org.example.SodiumTest.testInit(SodiumTest.java:12)
On 11/13 (passing):
???. 06, 2020 5:39:47 PM com.sun.jna.Native extractFromResourcePath
INFO: Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@5ffd2b27 for /com/sun/jna/darwin/libjnidispatch.jnilib
???. 06, 2020 5:39:47 PM com.sun.jna.Native extractFromResourcePath
INFO: Found library resource at jar:file:/Users/user/.m2/repository/net/java/dev/jna/jna/5.5.0/jna-5.5.0.jar!/com/sun/jna/darwin/libjnidispatch.jnilib
???. 06, 2020 5:39:47 PM com.sun.jna.Native extractFromResourcePath
INFO: Extracting library to /Users/user/Library/Caches/JNA/temp/jna5613620695150474271.tmp
???. 06, 2020 5:39:47 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Looking for library 'sodium'
???. 06, 2020 5:39:47 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Adding paths from jna.library.path: null
???. 06, 2020 5:39:47 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Trying libsodium.dylib
???. 06, 2020 5:39:47 PM com.sun.jna.NativeLibrary loadLibrary
INFO: Found library 'sodium' at libsodium.dylib
Provide complete information about the problem
- Version of JNA and related jars: 5.5.0
- Version and vendor of the java virtual machine:
java -version
openjdk version "14" 2020-03-17
OpenJDK Runtime Environment (build 14+36-1461)
OpenJDK 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)
- Operating system: macOS
- System architecture (CPU type, bitness of the JVM): x64
- Steps to reproduce:
- Clone https://github.com/dmitry-timofeev/jna-load-test
- Install libsodium via homebrew:
brew install libsodium
- Run
mvn test
with OpenJDK 14
Metadata
Metadata
Assignees
Labels
No labels