UnsatisfiedLinkError: no opencv_java249 in java.library.path

2022-09-02 01:09:18

在我的Mac上运行一段代码时遇到一些问题。有人给我写了一个图像分析java应用程序,但是当我试图在netbeans上运行它时,我一直收到这个错误。

run: 异常在线程 “main” java.lang.UnsatisfiedLinkError: no opencv_java249 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1119) at image.prossing.Test.main(Test.java:28) Java 结果: 1 构建成功 (总时间: 0 秒)

拥有 netbeans 项目,并添加必要的 jar 文件作为库。程序员告诉我下载正确的OpenCV版本,并将opencv.dll文件复制到我的java/jre/bin文件夹中。但是我找不到dll文件或java / jre文件夹。我知道大多数编程发生在Windows上是有原因的。希望有人可以帮助我解决此问题,并在我的Mac上运行此应用程序。

下面是代码的第一部分,最有可能造成错误的部分:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package image.prossing;

/**
 *
 * @author Dumith Salinda
 */
import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import static org.opencv.core.Core.FONT_HERSHEY_SIMPLEX;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

public class Test {

public static void main(String[] args) {

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

抱歉,如果它不是那么清楚,让我知道如果缺少或不清楚某些内容,要添加哪些信息。真的非常感谢你能给的任何帮助。真诚的梅厄·沃塞尔


答案 1

查看您的OpenCV目录;

举个例子;(安装方式brew install opencv3 --with-java --with-python3)

/usr/local/Cellar/opencv3/XXX/share/OpenCV/java

你会看到;

libopencv_javaXXX.so    opencv-XXX.jar

既然您已经拥有OpenCV的Java本机库(),那么剩下的唯一就是Mac的动态库libopencv_javaXXX.so

链接到libopencv_javaXXX.solibopencv_javaXXX.dylib;

ln -s libopencv_javaXXX.so libopencv_javaXXX.dylib

现在在 IntelliJ 中添加为本机库位置,或在 Eclipse 中添加类似内容。/usr/local/Cellar/opencv3/XXX/share/OpenCV/java

或者将其添加到您的JVM参数中;

-Djava.library.path=/usr/local/Cellar/opencv3/XXX/share/OpenCV/java

答案 2

在运行OSX Yosemite的Mac上,我将libopencv_java2412.dylib文件放进去,它就可以工作了。/Library/Java/Extensions

构建 opencv 后,将在 /build/lib 中生成 libopencv_java2412.dylib。


推荐