疑難排解「java.lang.UnsatisfiedLinkError no *.dll in java.library.path」問題
應用程式使用System.loadLibrary() 等靜態連結方法在Web 應用程式中包含自訂DLL 並不總是那麼簡單。為了有效解決「java.lang.UnsatisfiedLinkError no *.dll in java.library.path」問題,我們必須按照以下步驟操作:
DLL Accessibility:
確保Java 虛擬機器(JVM) 可以存取所需的DLL。這意味著將它們放置在:
UnsatisfiedLinkError Interpretation:
UnsatisfiedLinkError Interpretation:
*.dll in java.library.path,則表示JVM 在指定位置找不到DLL。
如果錯誤涉及特定函數(例如,「com.example.program.ClassName.foo()V」),問題可能在於本機程式庫本身。class Foo {
static {
System.loadLibrary('foo');
}
public Foo() {
}
}
結合 System.loadLibrary() 呼叫的日誌記錄以查明任何異常或意外行為。
如果發生異常或呼叫未正確執行,可能會導致後一種類型的UnsatisfiedLinkError.靜態初始化區塊:
考慮將System.loadLibrary() 呼叫放在靜態初始化區塊內以確保一次性執行:
類別 Foo { 靜止的 { System.loadLibrary('foo'); } 公共 Foo() { } }
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3