我正在嘗試使用CardScan SDK中的Java示例數據庫程序。JNI UnsatisfiedLinkError-如何正確加載庫?
我正在使用位於Java/JNI和Java /數據庫中的文件。該程序必須使用32位JRE運行。我可以在64位機器上卸載Java並安裝32位版本,然後重新添加Java系統路徑。我可以通過雙擊SDKData.bat文件成功運行程序並與CardScan數據庫文件(.cdb)進行接口,但是當我打開源文件進行編輯並編輯Java.library.path以包含所需的庫(CRTK_JNI .DLL),我得到UnsatisfiedLinkErrors無處不在:
Exception in thread "main" java.lang.UnsatisfiedLinkError: sdkdata.CRTK.CRTK_Init([I)I
at sdkdata.CRTK.CRTK_Init(Native Method)
at sdkdata.CRTK.(CRTK.java:239)
at sdkdata.SDKData.(SDKData.java:97)
at sdkdata.SDKData.main(SDKData.java:643)
Java Result: 1
據推測,這種情況正在發生,因爲該庫沒有正確加載。
我需要做什麼才能以滿負荷運行和編輯程序(使用來自CRTK_JNI的所有原生函數的工作順序)?
那麼,庫中有什麼非綁定符號? – 2012-08-12 18:02:11
@DonalFellows以下是我認爲不受限制的所有內容: http://pastebin.com/5vsxty5e – blastb 2012-08-12 18:18:22
您不會將DLL放入java.library.path中。你把包含DLL的目錄。 – bmargulies 2012-08-12 20:34:21