centos7中用docker部署java项目调用mvs海康相机拍照踩坑
一、海康机器人官网下载MVS V2.1.2 (Linux)
二、解压后将tar.gz包传入centos7中
三、解压并安装MVS
安装
四、执行MVS,并查看环境变量是否正确
安装后会新增/opt/MVS目录,进入/opt/MVS/bin目录执行./MVS
执行完成后查看是否已经自动添加环境变量,执行vi /etc/profile,会自动配置好环境变量
五、执行MVS例子查看是否能够调用相机拍照 ,目录 /opt/MVS/Samples/64/Java 为示例
进入SaveImage 执行./run_SaveImage.sh 如果能够执行则证明环境变量配置没有问题
六、java程序调用海康相机程序
先把 /opt/MVS/Samples/64/Java 目录下的 MvCameraControlWrapper.jar包放到java程序中,pom中配置引用jar包
配置pom.xml 将外部包一同打包进去
将 /opt/MVS/Samples/64/Java/SaveImage/SaveImage.java 拷贝到程序中,改写一下拍照方法
七、写一个接口将方法暴露出来,方便测试
八、docker环境部署
出现 no MvCameraControlWrapper in java.library.path 问题是由于java运行中需要配置环境引用的jar包,docker-compose也需要配置路径的映射
dockerfile中配置应用的lib包目录,该目录下就有libMvCameraControlWrapper.so库
docker-compose配置路径的映射
九、调用相机没有出错,但是没有找到相机
No devices found! 原因分析:是由于docker的网络模式导致的,默认为桥接模式,相机跟宿主机在同一个局域网,但是由于桥接模式导致无法找到相机
docker的四种网络端口映射,详见 https://blog.csdn.net/qq_62344659/article/details/131823212
解决思路:使用直接用host宿主机网络,docker-compose中进行配置
拍照成功