我從tutorial NetBeans項目導致異常:線程「main」 java.lang.UnsatisfiedLinkError: Unable to load library
「simpleDLL」試圖從Java(JNA)使用DLL。無法加載庫例外
異常:指定的模塊找不到。
試圖將simpleDLL.dll放入項目庫中,但沒有成功複製system32文件夾中的文件。
我從tutorial NetBeans項目導致異常:線程「main」 java.lang.UnsatisfiedLinkError: Unable to load library
「simpleDLL」試圖從Java(JNA)使用DLL。無法加載庫例外
異常:指定的模塊找不到。
試圖將simpleDLL.dll放入項目庫中,但沒有成功複製system32文件夾中的文件。
我有完全一樣的問題,加載DLL,我解決它以這樣的方式
如果DLL是兼容的,那麼問題可能出現在您的java庫路徑中。我把我的DLL到user.dir
目錄,然後我用這個代碼:
設置Java庫路徑user.dir
或者也許你想另一條道路:
String myLibraryPath = System.getProperty("user.dir");//or another absolute or relative path
System.setProperty("java.library.path", myLibraryPath);
加載庫:
的System.loadLibrary ( 「libraryWithoutDLLExtension」);
它爲我工作,嘗試它,並告訴我,如果它適合你。
請檢查simpleDLL是32位還是64位。然後檢查JVM是否也是32位或64位。他們必須爲同一個平臺。
你也可以指定一個絕對路徑,如果你改變loadLibrary()
到load()
: http://www.chilkatsoft.com/p/p_499.asp
我只能運行在32位(Xp)。
將文件夾中的DLL 「C:\ Windows \ System32下」
helloWorldDLL lib = (helloWorldDLL) Native.loadLibrary("helloworldDLL", helloWorldDLL.class);
如果錯誤java.lang.UnsatisfiedLinkError中:無法加載庫」依舊,使用的Dependency Walker來查看相關的DLL。
請檢查simpleDLL是32位或64位。然後檢查,如果JVM也爲32位或64位,他們必須在同一平臺。 –
試圖用另一個DLL和JNI,似乎它的工作原理 – Karloss