Jna(Java Native Access)框架是一个开源的java框架,其公司SUN主导开发,是一个建立在Jni基础上的开源框架,优化了 Jni 中最麻烦的数据类型映射, 可以让我们进行高效的开发。

1.导入工具包

01.第一种方式--引入maven包

        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>5.5.0</version>
        </dependency>

02.第二种方式--引用jar包

jar下载链接:https://pan.baidu.com/s/1ehlfMcdbvHQc1Wnd8RYXGw       提取码:ysys

下载完成创建springboot项目放置resources

pow文件中添加依赖

<dependency>
            <groupId>org.zhitong</groupId>
            <artifactId>jna</artifactId>
            <systemPath>${project.basedir}/src/main/resources/jars/jna.jar</systemPath>
            <scope>system</scope>
            <version>1.0</version>
        </dependency>

2.创建一个接口支继承Library


import com.sun.jna.Library;
import com.sun.jna.Native;

public interface HCNetSDK extends Library {
   HCNetSDK INSTANCE = CommonUtil.isLinux()?(HCNetSDK) Native.loadLibrary("hcnetsdk",
            HCNetSDK.class):(HCNetSDK) Native.loadLibrary("C:\\lib\\HCNetSDK",
            HCNetSDK.class);
    boolean NET_DVR_Init();

    }

接口中使用的函数必须与链接库中的函数原型保持一致             (以前代码调用了海康sdk,有兴趣可以上海康卫视官网下载sdk,或者云盘下载)

链接:https://pan.baidu.com/s/1u9-vckRAAcKwzzr7cDLq1Q 
提取码:ysys

3.调用接口方法

import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;

@Component
public class InitSdk {

    @PostConstruct
    public void initSdk(){
        HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
        try {
            boolean initSuc = hCNetSDK.NET_DVR_Init();
           if (initSuc){
               System.out.println("初始化成功");
           }else {
               System.out.println("初始化失败");
           }
        }catch (Exception e){
            L.info("SDK初始化异常");
        }
    }

4.运行

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐