先说开发:

直接将他的64位包中的依赖放到项目根路径里面,然后将他java demo中的HCNetSDK.java复制到自己项目中。自己去他官网下载,或者用我的分享链接下载:

https://download.csdn.net/download/wu__peng/13686259

(里面有依赖的jar包,海康威视的dll,还有HCNetSDK.java文件)

(里面有依赖的jar包,海康威视的dll,还有HCNetSDK.java文件)

(里面有依赖的jar包,海康威视的dll,还有HCNetSDK.java文件)

调用的话可以参考我的代码:

/*** @description: 抓拍**/
public class CameraManager {private static final String BASE_FILE_URL = "D:\\resource\\";private static Logger logger = LoggerFactory.getLogger(CameraManager.class);private static HCNetSDK sdk = HCNetSDK.INSTANCE;//用户登录ID,值为0,1,2...private NativeLong userId = new NativeLong(-1);// start channel numberprivate NativeLong startChan = new NativeLong(-1);private String ip;private short port;private String userName;private String pwd;/*** 设置对象登录信息* @param ip* @param port* @param username* @param pwd*/public void setLoginInfo(String ip, short port, String username, String pwd) {this.ip = ip;this.port = port;this.userName = username;this.pwd = pwd;}/*** 先设置对象登录信息,然后才能调用login方法*/private void login(){CheckDataUtils.isBlank(this.userName, "请先设置登录信息");//sdk初始化if (!sdk.NET_DVR_Init()){logger.error("海康SDK初始化失败!" + sdk.NET_DVR_GetLastError());}//注册设备HCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//登录this.userId = sdk.NET_DVR_Login_V30(this.ip, this.port, this.userName, this.pwd, deviceInfo);if (this.userId.intValue() < 0){logger.error("摄像头用户登录失败!Err:" + sdk.NET_DVR_GetLastError());}this.startChan.setValue(deviceInfo.byStartChan);}/*** 抓拍*/public String takePic(String fileName) {if (this.userId.intValue() < 0 || startChan.intValue() < 0) {logger.info("执行海康摄像机登录,ip[{}],port[{}],username[{}].",this.ip, this.port, this.userName);this.login();}logger.info("准备拍照,userId:[{}],startChan:[{}]",this.userId.intValue(), this.startChan.intValue());// 拍照HCNetSDK.NET_DVR_JPEGPARA strJpeg = new HCNetSDK.NET_DVR_JPEGPARA();// 图像参数strJpeg.wPicQuality = 0;strJpeg.wPicSize = 2;// 文件保存操作(创建每日文件夹)String dateFolder = DateUtils.format(new Date(), "yyyyMMdd");String folderUrl = BASE_FILE_URL + dateFolder;File folder = new File(folderUrl);if (!folder.exists()) {folder.mkdirs();}// 文件全路径String filePath = folderUrl + "\\" + fileName + ".jpg";//尝试用NET_DVR_CaptureJPEGPicture_NEW方法,但不是报43就是JDK崩溃....boolean b = sdk.NET_DVR_CaptureJPEGPicture(this.userId, this.startChan, strJpeg, filePath);// 单帧数据捕获图片(抓拍成功返回图片路径,失败则不处理)if(!b){System.out.println("抓拍失败!" + " err: " + sdk.NET_DVR_GetLastError());return "";}else{System.out.println("抓拍成功");return filePath;}}/*** 退出dll注册*/public void logout(){sdk.NET_DVR_Logout(this.userId);sdk.NET_DVR_Cleanup();this.userId.setValue(-1);}
}

重点就这样了,基本就这样了,其他的自己操作吧。(PS:还有那个他自己的jar包也要导入到工程里面)

打包的话:

springboot   jar包启动它找不到那些你的dll依赖,没法,你需要去设置jna路径,设置了他就知道了,启动命令例如:

java -jar -Djna.library.path=D:\resource\libs -Xms512m -Xmx1024m app.jar

设置jna路径,中间那个路径就是你的dll(海康的库文件存放路径)。

设置jna路径,中间那个路径就是你的dll(海康的库文件存放路径)。

设置jna路径,中间那个路径就是你的dll(海康的库文件存放路径)。

完事;

java SpringBoot调用海康威视的dll去完成摄像头抓拍,以及打包部署问题相关推荐

  1. Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27

    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...

  2. java 调用c 的dll,java如何调用C的dll

    java怎么调用C的dll 我做了1个java调用c++的dll 想做一个java调用C的dll就不知道怎么做了 在xx.c里 写 JNIEXPORT jint JNICALL Java_testdl ...

  3. java 项目加载dll文件,Java动态调用链接库dll文件

    Java动态调用链接库dll文件 Java动态调用链接库dll文件 因为项目需要,用到了java调用dll文件中的方法.写成dll文件大多是用C语言弄成的,对于我这个纯粹干java的人员来说,着实让我 ...

  4. java开发调用海康威视摄像头的web端页面开发心得

    最近在开发过程中  需要用到海康威视的摄像头 在web端展示  在各种百度之后 发现网上很难找到一个  简便,可靠的教程 在摸索着完成项目之后 ,决定写一篇攻略  造福有需求的小伙伴 言归正传 首先需 ...

  5. Linux系统下使用java语言调用海康威视SDK连接摄像头过程记录

    1.准备工作 1.1. 设备型号 萤石多功能互联网摄像头 CS-C2C-3B2WFR 1.2. SDK下载 通过海康威视官网可以下载到最新的Linux下的SDK开发包,分为32位和64位,根据电脑情况 ...

  6. Java通过JNI调用C++动态链接库dll,并打在jar包内 ——JNA-JNI(一)

    Java通过JNI调用C++动态链接库dll,并打在jar包内--JNA-JNI(一) 系列文章: Java通过JNI调用C++动态链接库dll,并打在jar包内 --JNA-JNI(一) Java使 ...

  7. java中调用matlab程序及相关问题

    **在java中调用matlab程序,首先要将matlab程序打包成jar文件,才可以被java程序所调用. 打包时本人所用的各种工具: 1:myeclipse-bule 2:java-1.7 3:m ...

  8. Java笔记-JNI的基本使用(Java调用C++的dll)

    目录 基本概念 过程演示 基本概念 JNI(Java Native Interface),这个是Java本地接口,可以调用Windows上的dll或者Linux上的so文件,当然要按照他的规范进行编写 ...

  9. 【开发者笔记】java 利用jna调用c#的dll

    一.需求阐述: 如果我们的项目利用c#开发,到了开发后期需要和java组进行合作,其中有一部分业务逻辑利用c#已经code completed,那么我们可能会考虑用java来调用现成的c#dll实现需 ...

最新文章

  1. EXCEL 电子表格MID 返回值 不能用于计算的问题
  2. TCP/IP 四次断开
  3. 异步加载js文件的方法总结
  4. callee与caller
  5. 多个DIV排列时居中
  6. 40 个顶级 jQuery 图片、内容滑块和幻灯片
  7. Python打卡第四周
  8. 英语笔记:写作:Recreational activities
  9. spring boot打包问题,访问问题
  10. c# 中wpfexcel_VS2017下编写C#程序读写Excel文件
  11. Java实例---flappy-bird实例[最终版]
  12. Mac OSX上安装Python的方法
  13. ios xcode文件前缀_关于ios8:Xcode 6错误:“嵌入式二进制文件的包标识符未以父应用程序的包标识符为前缀。”...
  14. JavaScript实现DoublyLinkedList双链表的算法(附完整源码)
  15. linux安装阵列卡驱动程序,Linux系统下如何安装阵列卡驱动?
  16. PhotoShop将彩色图片修改为只有黑白线条
  17. Kettle的“增加序列”(自增字段)的使用
  18. 淘宝淘口令解密,解析,转换接口,API对接
  19. uniapp APP消息推送方案
  20. C语言基础——执行顺序

热门文章

  1. 【面经】2022年软件测试面试题总结(附答案)
  2. 自定义Dialog(QQ头像选择弹出的对话框)
  3. 如何用R语言做Vintage分析
  4. Q4还没结束,我已看到2022年全球科技并购已近3000亿美元了
  5. 游戏开发中AOI算法总结
  6. 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧
  7. ABB机器人socket通讯
  8. CSS阴影样式大全(包含所有样式: demo代码全)看图看代码
  9. python编程第-学习Python编程第002天
  10. jQuery之过关小游戏