SpringBoot中使用OpenCV并部署到Linux服务器 问题前言:前段时间接了个烂尾项目,要用到OpenCV,期间遇到了许多问题,摆弄了许久才得以解决,特地写成博客记录一下,以免再次遇到
项目在Windows底下运行时一切都好好的,但是,当我打成 jar 包放到 CentOS 服务器上运行时,问题出现了,如下:
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: java.lang.NullPointerException at com.gcl.letao.LetaoApplication.main(LetaoApplication.java:22) ... 8 more在CentOS安装OpenCV
我寻思着应该是服务器上没安装 OpenCV 导致的,所以我四处寻找教程,试错几次之后,终于找到一篇靠谱的,
centos7下java使用opencv
- 按照编译依赖
# 缺什么就下什么,其中cmake是最重要的 yum -y install epel-release yum install gcc gcc-c++ yum install cmake yum install python-devel numpy yum install ffmpeg-devel yum install -y unzip zip
- 下载opencv 并解压
# 解压 unzip opencv-4.6.0.zip # 进入解压后的目录 cd opencv-4.6.0 # 创建名为build目录存放后续生成的一些东西 mkdir build # 进入build目录中 cd build
- 编译
cmake -D WITH_TBB=ON -D WITH_EIGEN=ON .. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<你想要安装的路径> .. make make install
- 编译opencv的java版本
yum install ant cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<你前面设置的安装路径> -DBUILD_TESTS=OFF .. make -j8 make install
注意:3、4两步的操作需要的时间可能比较长,请耐心等待…
环境配置就当我以为安装好 OpenCV 就大功告成之后,没想到启动后它又报错了,错误如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java460 in java.library.path ...
这貌似是运行环境还没弄好,缺少相关的类库,解决方法:
Windows:Java异常之java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path解决方案!
Linux:错误原因:java.lang.UnsatisfiedLinkError: no opencv_java430 in java.library.path
配置好环境之后,就可以直接直接加载 OpenCV 了,测试用例我就不给了,网上一搜一大把。
最后PS:也可以到我的个人博客查看更多内容或联系博主
个人博客地址:小关同学的博客



