启动Java OpenCV项目时出现UnsatisfiedLinkError

我的计划是在Java项目中使用OpenCV,该项目随gradle一起导出到一个大jar中。 gradle导出效果很好。我的问题是将OpenCV集成到我的Java项目中。

我尝试使用以下lib:Github: bytedeco/javacv

build.gradle

dependencies {
   // https://mvnrepository.com/artifact/org.bytedeco/opencv-platform
   compile group: 'org.bytedeco',name: 'javacv-platform',version: '1.5.3'
}

Main.java

import org.bytedeco.javacpp.Loader;
import org.bytedeco.opencv.opencv_java;
...

public class Main{
   static {
        Loader.load(opencv_java.class);
   }
   ...
}

现在我遇到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_videoio in java.library.path: [C:\Program Files\Amazon Corretto\jdk11.0.6_10\bin,...]
    at java.base/java.lang.ClassLoader.loadlibrary(ClassLoader.java:2660)
    at java.base/java.lang.Runtime.loadlibrary0(Runtime.java:829)
    at java.base/java.lang.System.loadlibrary(System.java:1870)
    at org.bytedeco.javacpp.Loader.loadlibrary(Loader.java:1631)
    at org.bytedeco.javacpp.Loader.load(Loader.java:1265)
    at org.bytedeco.javacpp.Loader.load(Loader.java:1109)
    at org.bytedeco.opencv.global.opencv_videoio.<clinit>(opencv_videoio.java:21)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at org.bytedeco.javacpp.Loader.load(Loader.java:1176)
    at org.bytedeco.javacpp.Loader.load(Loader.java:1125)
    at com.package.Main.<clinit>(Main.java:39)
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\User\.javacpp\cache\opencv-4.3.0-1.5.3-windows-x86_64.jar\org\bytedeco\opencv\windows-x86_64\jniopencv_videoio.dll: Can't find dependent libraries
    at java.base/java.lang.ClassLoader$Nativelibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$Nativelibrary.load(ClassLoader.java:2430)
    at java.base/java.lang.ClassLoader$Nativelibrary.loadlibrary(ClassLoader.java:2487)
    at java.base/java.lang.ClassLoader.loadlibrary0(ClassLoader.java:2684)
    at java.base/java.lang.ClassLoader.loadlibrary(ClassLoader.java:2617)
    at java.base/java.lang.Runtime.load0(Runtime.java:767)
    at java.base/java.lang.System.load(System.java:1834)
    at org.bytedeco.javacpp.Loader.loadlibrary(Loader.java:1581)
    ... 8 more

我也尝试过直接加载本机库

import ...

public class Main{
   static {
        System.load("C:/opencv/build/java/x64/");
   }
   ...
}

但是它也失败了,除了以下例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\opencv\build\java\x64: Can't find dependent libraries
at java.base/java.lang.ClassLoader$Nativelibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$Nativelibrary.load(ClassLoader.java:2430)
at java.base/java.lang.ClassLoader$Nativelibrary.loadlibrary(ClassLoader.java:2487)
at java.base/java.lang.ClassLoader.loadlibrary0(ClassLoader.java:2684)
at java.base/java.lang.ClassLoader.loadlibrary(ClassLoader.java:2617)
at java.base/java.lang.Runtime.load0(Runtime.java:767)
at java.base/java.lang.System.load(System.java:1834)
at com.package.Main.<clinit>(Main.java:38)

您有如何解决该问题的提示吗? 预先感谢!

iCMS 回答:启动Java OpenCV项目时出现UnsatisfiedLinkError

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1846440.html

大家都在问