在Linux下使用opencv源码编译java jar包和.so共享库的常见问题

项目场景:

在Linux下使用opencv源码编译java jar包和.so共享库时,经常遇到无法编译jar包,makefile中不包含java,编译完成后找不到等问题


其他网络教程的常规编译方式:


原因分析:

这种常规编译本身没有什么问题,但是有如下几个注意的点

  • 这是远程服务器上或虚拟机中的环境,可以看到登陆账户是 root@localhost
  • java环境在linux上配置主要有两种,一种是openJDK使用包管理工具直接安装(例如:sudo apt-get install jdk1.8),另一种是从官网下载linux平台的JDK解压后,配置到linux中的全局变量JAVA_HOME
  • 如果是从官网下载的JDK,那么在配置JAVA_HOME时,根据网上的推荐配置有一下三种方式
  • 没有配置ant

解决方案:

  • 配置ant
  • 在根用户环境变量中配置JAVA_HOME
  • 切换到根用户
  • 执行cmake
  • 如果在输出中看到java项出现在编译队列中且java编译选项中ant, JNIJava wrappers 能够被识别,那么恭喜你配置生效了
  • 接下来执行make进行编译即可
  • 编译成功后,对应的opencv-401.jar和共享库libopencv_java401.so即可在build目录下的 bin/ 和 lib/ 下找到,将其复制到/usr/local/lib下即可在java中使用opencv-401.jar包中的方法载入

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览10930 人正在系统学习中

来源:凤千羽

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月12日
下一篇 2021年11月13日

相关推荐