最近公司上一個項目,但是要調用另外一個公司的dll文件,剛開始無從下手,後來在網上查了下發現使用Java JNA來加載DLL挺方便的。和大家分享下,廢話不說了直接舉一個例子:
public class LoadDll{
public interface Dll extends StdCallLibrary {
Dll INSTANCE = (Dll) Native.loadLibrary("dllName", Dll.class);、
//在這個地方可以把dll中的所有的方法一一列舉出來
}
}
Note:
1:使用JNA 加載dll你首先需要下載JNA.jar,這個jar文件可以在sun官網下載到。
2:dllName這個地方只能是dll的名字,不能加".dll"這個是爲了跨平臺。
3:使用JNA通常會遇到不能加載的問題,這一般是應爲dll文件沒有放在正確的位置導致的。
1:dll文件要放到項目路徑下;
2:把dll文件放到庫文件路徑下,執行這句代碼 System.out.println(System.getProperty("java.library.path"));
然後把dll文件copy到任意一個路徑下
3:dll名字好像不能帶有“_”(這個是我自己遇到的一個問題,僅供參考)
注意到這三點基本可以解決使用JNA加載C++,Delphi,C的dll的所有問題了。