如何让我的java程序在linux中正确导入javacv库(编辑 - 现在得到uneisfiedLinkError)

时间:2015-04-28 09:26:14

标签: java linux opencv raspberry-pi

我目前正在尝试使用opencv和javacv来处理我的树莓派。

我已关注this tutorial

我相信我已经准备好了所有东西。

当前文件夹路径如下所示。

/home/pi/build - The three javacv libs (javacpp.jar, javacv.jar and javacv-linux-arm.jar)


the opencv jar is located at
/home/pi/build/opencv/opencv-2.4.11/release/bin - opencv-2411.jar

OpenCv带有一些我正在查看的java示例位于

home/pi/build/opencv/opencv-2.4.11/samples/java/eclipse/Hellocv/src/Main.java

这是代码本身。

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

public class Main {

    public static void main(String[] args) {
        System.out.println("Welcome to OpenCV " + Core.VERSION);
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat m  = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println("m = " + m.dump());
    }

}

当我编译它时(包含或不包含类路径),我得到错误

package.org.opencv.core does not exist.

编辑 - 如果相关,我也在使用新的Raspberry Pi 2 B +

编辑2/3(改进细节

用命中编译

javac -cp .:/home/pi/build/opencv/opencv-2.4.11/release/bin/opencv-2411.jar:/home/pi/build/opencv/opencv-2.4.11/release/lib Main.java

但是当我在“system.loadlibrary”

行运行它时失败了
java -cp .:/home/pi/build/opencv/opencv-2.4.11/release/bin/opencv-2411.jar:/home/pi/build/opencv/opencv-2.4.11/release/lib Main

错误是

unsatisfiedlinkerror: no opencv_java2411 in java.library.path

我试过这个,但大多数解决方案都是针对Windows的。我提供了一个直接链接到我的类路径中的opencv_java2411.jar文件,所以我不确定它为什么不运行。

3 个答案:

答案 0 :(得分:0)

尝试设置指向java OpenCV libs位置的java.library.path属性(从命令行或在Eclipse或您正在使用的任何IDE中)。例如,如果您有一个可运行的jar,请尝试

java -jar -Djava.library.path=/home/pi/build/lib app.jar

这也假设您已经构建了OpenCV,而java是构建的模块之一。一个很好的教程可以在http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html

答案 1 :(得分:0)

经过反思,我认为很大一部分原因是因为它不是编译的原因之一。例子,我并没有试图在日食中编译它。

我最终得到的解决方案是使用Ant来构建和编译java代码。

我的主要来源是如何做到这一点this opencv page

我应该注意,他们在该页面上显示的示例可以在samples子文件夹中找到,这样您就可以使用已经提供的内容节省一些时间。

还要感谢@nomis

答案 2 :(得分:0)

我有同样的问题,我只是通过这样做来解决它: 将opencv-2411.jar文件复制到程序所在的位置(Main.java) 并解压缩opencv-2411.jar文件

jar xf opencv-2411.jar