UnsatisfiedLinkError尝试运行OpenCV java代码交叉编译

时间:2016-12-04 16:58:02

标签: java eclipse opencv raspberry-pi

我在这里撞墙撞了我的头。有很多非常相似的问题,但没有一个问题。我确定答案正在盯着我。

我正在进行我的第一次OpenCV交叉编译测试。我在Windows 10上的Eclipse中设置了OpenCV 3.1.0。代码运行良好。从那里我创建了一个可执行文件.jar和FTP,它是一个运行Jessie的树莓派3。

我在Pi上安装了OpenCV 3.1.0,包括java支持(第三次尝试)。但我继续得到同样的错误。

代码:

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

public class Hello
{
   public static void main( String[] args )
   {
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );
      System.out.println( "mat = " + mat.dump() );
   }
}

错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at Hello.main(Hello.java:9)

我在/ usr / local / share / OpenCV / java中找到了opencv-java310.jar

我在命令行上尝试过使用和不使用-D参数:

java -jar HelloEx.jar -D java.library.path=/usr/local/share/OpenCV/java

提前致谢

1 个答案:

答案 0 :(得分:1)

我不确定你是否正确设置java.library.path,因为在你的起始帖子中它是不正确的,请尝试使用它如下:Time你也可以检查它是否设置正确通过添加以下代码(仅用于调试)来创建您的Java代码:java -Djava.library.path=/usr/local/share/OpenCV/java -jar HelloEx.jar