首頁 > Java > java教程 > 主體

為什麼我的 JNI 專案找不到依賴函式庫?

Linda Hamilton
發布: 2024-11-21 04:48:13
原創
751 人瀏覽過

Why Can't My JNI Project Find Dependent Libraries?

解決UnsatisfiedLinkError: Can't Find Dependent Libraries in JNI Projects

在開發 Native Interfaces

在開發 Native Interface (JNI) 專案時,您可能會遇到錯誤:「java.lang.UnsatisfiedLinkError:C:...path...mylib.dll:找不到依賴函式庫。」此錯誤表示Java 虛擬機器(JVM) 無法找到JNI 函式庫所需的共用函式庫( DLL)。

解決問題

  1. 解決問題,請考慮以下解決方案:
  2. 確保正確的庫路徑:驗證依賴函式庫(例如libsndfile-1.dll)與主函式庫位於同一目錄中( mylib.dll)或Windows PATH 環境變數中所列的目錄中。 JVM 依靠此程式庫路徑來定位所需的依賴項。
  3. 修復方法名稱混亂: 仔細檢查 JNI 庫中的方法名稱是否與對應 JNI 標頭中的方法名稱完全匹配檔案。 Visual Studio 編譯器可能會破壞方法名稱,因此請確保指定適當的連結器標誌以產生一致的命名。
明確指定庫路徑:

如果前面的方法失敗​​,您可以明確設定 java .library.path 包含依賴函式庫的目錄的系統屬性。這會覆蓋預設的庫搜尋路徑。

在 macOS 上的 Visual Studio 2010 中,目標平台應設定為 Windows,因為您在 Windows XP 上進行測試。如果在 Windows 上進行開發,請相應地設定目標平台。

其他提示

如需進一步參考,請參閱「The JNI Book」或 Oracle HTML 版本JNI 規格。您也可以使用指令“java -XshowSettings:properties -version”來識別共用庫搜尋路徑。

以上是為什麼我的 JNI 專案找不到依賴函式庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板