JNA呼叫dll問題
阿新 • • 發佈:2018-12-18
Unable to load library ‘XXX.dll’: Native library (win32-x86/XXX.dll…
這是我第一次遇見這個問題,找了很多天,希望能給您提供思路!!! JAN呼叫dll : 問題一:關於JDK 與 dll檔案 32位/64位的問題 參考:https://blog.csdn.net/sychel/article/details/54884132 通過cmd–>java -version 檢視JDK(下圖為32位) 檢視dll檔案可以使用工具檢視 如果沒有工具請 參考:https://blog.csdn.net/u012611644/article/details/83060983
<dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>4.1.0</version> </dependency>
將dll檔案與新建的類放在一個包下並測試
public class HelloWorld { public interface CLibrary extends Library { String dllPath = CLibrary.class.getResource("").getPath().replaceFirst("/","").replaceAll("%20"," ")+"zhiGongHiscomminterface.dll"; CLibrary INSTANCE = (CLibrary)Native.loadLibrary(dllPath,CLibrary.class); } public static void main(String[] args) { System.out.println(CLibrary.dllPath); System.out.println("==============================="); System.out.println(CLibrary.INSTANCE); } }
** 問題四:左斜槓 與 右斜槓 我最後在伺服器上載入dll檔案是 測試路徑的dllPath 載入不到(這個是左斜槓的)當我把路徑的左斜槓改為由斜槓時就可以載入到(不明白為什麼(>_<) ! ) 注:左斜槓為單線 右斜槓為雙線