现在的位置: 首页 > 综合 > 正文

在java中使用JNA调用加载DLL

2013年12月24日 ⁄ 综合 ⁄ 共 586字 ⁄ 字号 评论关闭

最近公司上一个项目,但是要调用另外一个公司的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的所有问题了。


抱歉!评论已关闭.