使用JNA——JAVA调用DLL(1)

本文记录了使用JNA在JAVA中调用DLL的详细过程,包括前期准备,如下载JNA库,配置DLL文件,以及如何编写测试类进行调用。在64位系统中,注意DLL应放在C:WindowsSysWOW64目录,32位则放在C:WindowsSystem32。同时,介绍了创建接口并继承CallLibrary或StdCallLibrary来调用DLL的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有个项目需要用JAVA调用基于DLL的SDK方法,就花时间把Jna研究了下,把研究的过程记录下来。
所谓JNA就是“Java Native Access”的缩写。说白了就是Java直接访问/调用本地动态库。最好的入门方法就是从JNA的官网开始。

1.前期准备
在maven仓库中下载jna最新版本。我下载的是4.5.1版本的。下载好了将jar添加至项目中就可以使用了。下载地址:
http://mvnrepository.com/artifact/net.java.dev.jna/jna
如果项目是maven集成的,可以直接添加,不再赘述。
准备好需要调用SDK的DLL文件,最好还包括.h头文件【后面会介绍】。特别要注意的是DLL的版本,这是第一个坑,如果JRE的版本跟DLL的版本不一致,则会报错,程序无法运行。DLL是32位的,则JRE也要是32位。由于我的DLL提供的是32位,在64位JRE下找了无数的资料都没解决,但是改成32位的JRE就行了。如果DLL是64位的,我还没有试过,欢迎用过的网友补充。
如果没有DLL,则需要自备cpp文件并且编译。编译的时候需要注意生成的版本是32位还是64位。这个不是本文的重点就不多说了。
将生成的DLL放在相应系统的目录下。因为是DLL,所以只能在Windows平台下运行,不过这里也要注意平台的版本号!如果是64位系统,DLL应该放在C:\Windows\SysWOW64目录下;是32位系统,则放在C:\Windows\System32目录下。看网上有人说,放在项目或是jre\lib目录里面,经本人测试不行,不知道有成功的没?

2.编写测试类
前期准备工作确定做好了之后,就可以编写测试代码调用SDK了。
首先,新建项目。将JNA添加至环境中,在Libraries选项卡选择Add External JARs,然后选择你下载的j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值