目标
在Ubuntu16.04系统中,为Java1.8,部署OpenCV3.4,并成功生成Opencv3xx.jar文件。
踩坑总结
- 部署前最好先安装 Apache Ant 工具
- 编译时使用
make -j4
指令,进行多线程优化,加快编译速度 - 每一个 ~/.bashrc 都是为每一个用户单独配置的,如经常切换root用户建议直接修改 /etc/bash.bashrc,总之必须使用同一个bash.rc,不能把环境变量分别写在两个文件内,导致检测不到java环境
准备
安装java1.8环境:
- 使用PC端下载 64位java1.8 jdk: jdk-8u211-linux-x64.tar.gz ,并上传至服务器
- 解压安装:
$ tar -zxvf jdk-8u211-linux-x64.tar.gz
# 移动至 /usr 目录下
$ sudo mv ./jdk1.8.0_211 /usr
# 更改目录名为 java
$ sudo mv ./jdk1.8.0_211 ./java
# 修改系统环境变量
$ sudo vim /etc/bash.bashrc
# 直接在末尾添加环境变量(fi 后一行)
--------------------------------------
#set Java environment
export JAVA_HOME=/usr/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 保存并退出,使用source命令使之生效
$ source /etc/bash.bashrc
# 查看安装状况
$ java -version
# 若返回以下内容,则安装成功
--------------------------------------
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
# 再输入以下这个,让编译器检测到JAVA环境安装正确
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
下载OpenCV
- 使用PC端下载 OpenCV-3.4.6: opencv-3.4.6.zip ,并上传至服务器
- 解压下载下来的安装包并移动至 /usr/java 目录
# 安装 unzip
$ sudo apt-get install unzip
# 解压至当前目录
$ unzip opencv-3.4.6.zip
# 移动至java目录
$ sudo mv ./opencv-3.4.6 /usr/java
安装 Apache Ant
Wikipedia: Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发
$ sudo apt-get insatll ant
安装
1. 准备编译
# 打开至OpenCV目录
$ cd /usr/java/opencv-3.4.6
# 切换至 root 用户
$ sudo su
# update一下
$ apt-get update
# 安装 cmake
$ apt-get install cmake
# 安装依赖库(最好提前替换好阿里云服务镜像)
$ apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
# 建立存放编译后文件的文件夹
$ mkdir build
$ cd build
2. 开始编译
# 确定已切换至root用户
$ cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
# 其他教程采用的是下面这条
# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
# 期间可能会下载一个东西,等待一会儿就OK
--------------------------------------
-- IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz
# 查看cpu线程数
$ grep 'processor' /proc/cpuinfo | sort -u | wc -l
# 执行编译指令,请耐心等待
$ make -j4 (根据电脑cpu线程数确定 -j 后面的数字)
如果 -- IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz
超过10分钟仍未响应,点这里查看解决办法
如果出现JAVA显示NO,表示未检测到JAVA环境,未对JAVA进行编译
输入 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 即可
3. 开始安装
# 确定已切换至root用户并位于 ./build 目录
$ sudo make install
# 添加 OpenCV 的库到路径,从而可以让系统找到
$ vim /etc/ld.so.conf.d/opencv.conf
# 执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加以下内容即可
--------------------------------------
/usr/local/lib
# 退出保存
# 执行如下命令使得刚才的配置路径生效
$ ldconfig
# 配置bash环境变量
$ vim /etc/bash.bashrc
# 在最末尾添加
--------------------------------------
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 退出并保存
# 执行如下命令使得配置生效
$ source /etc/bash.bashrc
# 更新
$ updatedb
# 至此所有的配置都已经完成
4. 查看是否编译成功
$ cd /usr/java/open-cv3.4/build/bin
$ ls
# 若出现 opencv-346.jar, 则编译成功