小编Cha*_*ier的帖子

当添加jar作为Play项目的依赖项时,IntelliJ找不到OpenCV的本机库

我目前正在开发一个Play 2.1项目,其中对Web服务的请求将处理下载用户提供的图像,重新调整大小和重新裁剪它们,以及过滤掉已知的坏照片(例如,我们不希望用户上传公司徽标).我们正在尝试使用OpenCV来处理后端工作,但我似乎无法让IntelliJ以与java项目一起使用的方式添加OpenCV jar.

我已经能够从源代码构建OpenCV,没有问题.这给我留下了以下文件夹:/ home/charles/opencv/release

在这个文件夹里面,我有三个感兴趣的文件:

  1. 斌/ OpenCV的-246.jar
  2. LIB/cv2.so
  3. LIB/libopencv_java246.so

如果我尝试将jar文件添加到IntelliJ作为新的Java库,它似乎找到了所有的类/方法,我可以使用auto-complete编写代码.我也可以单击相应的类或方法,它会将我带到正确的文件中.

但是,当我尝试运行Play项目时,我收到此错误:

[info] Loading project definition from /home/charles/Github/ImageProject
[info] Set current project to ImageProject (in build file:/home/charles/Github/ImageProject/)

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

Server started, use Alt+D to stop

[info] Compiling 1 Java source to /home/charles/Github/ImageProject/target/scala-2.10/classes...
[error] /home/charles/Github/ImageProject/app/controllers/Application.java:7: error: package org.opencv.core does not exist
[error] import org.opencv.core.Core;
[error]                       ^
Run Code Online (Sandbox Code Playgroud)

我也尝试将jar文件的副本直接添加到项目中(所以将opencv-246.jar放入ImageProject/lib),然后从该位置添加java库.但这只是让我有一个不同的错误:

java.lang.UnsatisfiedLinkError: no opencv_java246 in java.library.path
Run Code Online (Sandbox Code Playgroud)

我怀疑部分问题可能与Java OpenCV包装器使用的本机库有关(上面的文件2或3).在Eclipse中,当您添加jar文件时,您可以显式设置本机库位置,这使OpenCV正常工作.我已经阅读了使用它来解决问题的建议:

-Djava.library.path=/home/charles/opencv/release/lib …
Run Code Online (Sandbox Code Playgroud)

java opencv intellij-idea unsatisfiedlinkerror playframework-2.1

6
推荐指数
1
解决办法
9883
查看次数