一.java学习之调用动态链接库——JNA入门实例
引言:
在编程的过程中,有时候某个功能用java语言来实现不是很方便,采用其他编程语言能够更好地实现此功能。然而对很多java程序员来说,对其他编程语言的掌握度并不高(大佬除外),让我们用其他语言来写实在有点难受,那这种情况该怎么办呢?java中提供了一下几种方式:JNI、JNA、Jnative等。本文讲的是采用JNA的方式对动态链接库进行调用。(注:由于本人初学JNA,有很多不足之处请读者不吝指教)
1.JNA
JNA(java native access),是一个基于JNI的开源框架,它很好地简化了调用过程,不用像JNI那样繁琐,下面让我们通过JNA来实现计算两数之和以及一个数的阶乘:
第一步:既然JNA是一个框架,那肯定少不了对应的jar包:jna.jar。别忘记引入项目。
第二步:创建一个简单的java项目:JNATest:
第三步:创建一个接口:DllLibrary,注意,此接口一定要继承 Library接口,接口中定义对应动态库中的方法add和factorial,不用实现这两个方法,因为方法已经实现在动态链接库中了,我这里的动态库是JNATest.dll;
第四步:创建一个测试类,来调用方法测试一下:
可以看到结果如下: