项目场景:
在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, JNI和Java wrappers 能够被识别,那么恭喜你配置生效了
- 接下来执行make进行编译即可
- 编译成功后,对应的opencv-401.jar和共享库libopencv_java401.so即可在build目录下的 bin/ 和 lib/ 下找到,将其复制到/usr/local/lib下即可在java中使用opencv-401.jar包中的方法载入
文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览10930 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!