在java中使用JNA調用加載DLL


最近公司上一個項目,但是要調用另外一個公司的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的所有問題了。


發佈了17 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章