第一步:运行海康威视官方提供的SDK
第二步:编译需要调用的C程序为可运行程序
我们使用的Alarmxxx程序,在idea中运行。需要配置摄像头ip及交换机(同一个IP段),以便连接程序运行。
第三步:JNA调用可运行程序
JNA(Java Native Access )提供一组Java工具类用于在运行期间动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个[java接口]中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
- dll和so是C函数的集合和容器,这与Java中的接口概念吻合,所以JNA把dll文件和so文件看成一个个接口。在JNA中定义一个接口就是相当于了定义一个DLL/SO文件的描述文件,该接口代表了动态链接库中发布的所有函数。而且,对于程序不需要的函数,可以不在接口中声明。
- JNA定义的接口一般继承com.sun.jna.Library接口,如果dll文件中的函数是以stdcall方式输出函数,那么,该接口就应该继承com.sun.jna.win32.StdCallLibrary接口。
- Jna难点:编程语言之间的数据类型不一致。
JNA模拟结构体,使用JNA将C语言的结构体翻译成Java可以对象模型。
、、、
这个各位看官需要自己努力了。
、、、
JNA的使用
第四步:打包发布
使用jar包发布,配置文件随jar包一起,可以更改数据库连接的配置。
碰见问题:
- jar包读取配置文件路径问题(绝对路径与相对路径);
- 数据库连接优化(插入优化,连接优化);