opencv编译java库分享

53 阅读1分钟

1、编译流程

  1. 从官网下载源码。opencv.org/releases/
  2. 在服务器解压并进入文件夹opencv-4.7.0。unzip opencv-4.7.0.zip

image.png

  1. 在该文件夹下创建build文件夹并进入。 mkdir build && cd build
  2. 执行cmake命令
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True -D JAVA_GENERATE_NATIVE_WRAPPERS=ON -D JAVA_HOME="/usr/lib/jvm/openjdk-17.0.2" -D BUILD_opencv_java=ON -D WITH_ANT=ON -D ANT_EXECUTABLE="/userdata/apache-ant-1.10.15/bin/ant" ..

5. 编译。make -j${nproc} 6. 构建。make install

2、可能存在的问题

  1. JNI找不到

先看全局变量有没有设置JAVA_HOME,还不行就cmake指定JAVA_HOME地址

  1. ant找不到

这个我遇到的ANT_EXECUTABLE没识别到,指定ant的路径,就有了

  1. 编译了一次之后,如果其他统一配置的服务器要使用应该怎么办?

把build文件夹先整个拷贝过去(或者干脆整个opencv-4.7.0文件夹),然后配置LD_LIBRARY_PATH环境变量,指向拷贝过来的opencv库

export LD_LIBRARY_PATH=/userdata/opencv-4.7.0/build/lib:$LD_LIBRARY_PATH

接着执行ldconfig来更新链接器缓存,确保链接器能找到所有库

  1. java应用启动时需要指定opencv路径: java -jar -Djava.library.path=/userdata/opencv-4.7.0/build/lib demo.jar