![](/img/trans.png)
[英]Java JNI “symbol lookup error” when a dependent shared library contains the symbol
[英]Java JNI: Specify path to dependent shared library
我構建了一個 JNI 庫libmyjni.dylib
並且它與libthirdparty.dylib
鏈接。 在啟動我的 Java 應用程序時,我設置了-Djava.library.path=/path/to/native/libs
但該路徑未用於加載libthirdparty.dylib
。 Java 總是在<project_root>/lib
文件夾下尋找libthirdparty.dylib
。 我設置什么參數以便在與java.library.path
相同的路徑中查找libthirdparty.dylib
?
如果我不將libthirdparty.dylib
放在<project_root>/lib
下,則會出現此錯誤。 我還嘗試使用 int 中libthirdparty.dylib
路徑創建/etc/ld.so.conf
但這也無濟於事。
java.lang.UnsatisfiedLinkError: <java_library_path>/libmyjni.dylib: dlopen(<java_library_path>/libmyjni.dylib, 1): Library not loaded: lib/libthirdparty.dylib
Referenced from: <java_library_path>/libmyjni.dylib
Reason: image not found
java.library.path
僅用於 JNI 庫,而不是它們依賴的庫。 系統路徑用於那些與系統相關的:設置PATH
、 LD_LIBRARY_PATH
或DYLD_LIBRARY_PATH
(分別在 Windows、Linux 或 OSX 上)
基於@user207421 和@CHmoonKa 對該問題的評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.