" Java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java320"

时间:2017-07-03 11:42:02

标签: java opencv jenkins

我进行了一次硒测试,当它完成时会对OpenCV进行一些操作。使用IntelliJ IDEA它工作正常,操作正确,但是当我尝试通过命令行执行时(Jenkins在不久的将来使用),我得到上面提到的错误:

" Java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java320"

我在这里阅读了其他问题,并且我已经将java.library.path设置为jar和dll文件所在的路径,但错误仍然出现,而且我已经用完了想法。

你能帮我吗?

谢谢!

5 个答案:

答案 0 :(得分:4)

请在下面找到一个工作代码段。你需要适应自己的需求。

假设以下文件结构

libs\opencv_java320.dll
pom.xml
src\test\java\sub\optimal\OpenCVTest.java

pom.xml - 测试的部分

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <argLine>-Djava.library.path=${project.basedir}/libs/</argLine>
            </configuration>
        </plugin>
    </plugins>
</build>

<强>子\最佳\ OpenCVTest.java

package sub.optimal;
import org.junit.Test;
public class OpenCVTest {
    @Test
    public void someOpenCVTest() {
        System.out.printf("java.library.path: %s%n",
                System.getProperty("java.library.path"));
        System.loadLibrary("opencv_java320");
    }    
}

运行测试

mvn compile test

<强>输出

...
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running sub.optimal.OpenCVTest
java.library.path: X:\develop\opencv-demo/libs/
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: ...
...

答案 1 :(得分:2)

如果您使用的是STS / Eclipse或任何IDE,请按照以下步骤解决您的 unsatisfiedlinkerror-no-opencv-java320 错误。

窗口->首选项->用户库->新建->创建新的库,如附件图像

注意:-创建新库时,jar位置和本机库位置(opencv / build / java / x64)应该与此完全相同。

enter image description here

答案 2 :(得分:1)

如果您正在使用IntelliJ IDEA,则应将OpenCV库添加为本机库位置。

  1. 转到File&gt; Project Structure
  2. 从侧面板中选择Modules,然后选择Dependencies标签
  3. 单击底部的+图标以添加依赖项。然后选择Add JARS or directories选项。
  4. 然后浏览到安装OpenCV的路径并选择build/bin/opencv-***.jar(或者在某些情况下使用build / java / opencv - ***。jar)并单击Open

    ※如果你找不到那个jar文件。我预测你忘了构建OpenCV repo。参考此introduction

  5. 它将在窗口中显示为依赖项。现在,我们还必须添加本机库位置。为此,双击opencv - ***。jar

  6. 然后单击+图标以添加本机库位置。
  7. 然后浏览到安装OpenCV的位置并选择build/lib(在某些情况下,它将是build/java/x64)。现在点击Open
  8. enter image description here

    现在,您可以使用System.loadLibrary(Core.NATIVE_LIBRARY_NAME);按预期加载库

    参考:Aadam的How to set-up OpenCV in IntelliJ IDEA

    PS:您还可以在java.library.path

    等VM选项中添加-Djava.library.path={PATH_T0_LIBRARY}

    enter image description here

答案 3 :(得分:1)

这对我有用。我在Mac上使用intellij

294 // installments.amount
undefined // amount
undefined // typeof installments.amount
undefined // typeof amount

和依赖性

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

public class Test {

 public static void main(String[] args){
    //System.loadLibrary(Core.NATIVE_LIBRARY_NAME); - REMOVE THIS
    nu.pattern.OpenCV.loadShared(); //add this
    Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
    System.out.println("mat = " + mat.dump());
 }
}

答案 4 :(得分:0)

这对我来说是intellij Idea的工作:

  1. 在intellij Idea中打开项目,
  2. 转到“文件”->“项目结构”->“库”,然后单击+(Java)
  3. 然后添加.dll文件。就我而言,我有:\ opencvFolder \ build \ java \ x64 \ opencv_java320.dll
  4. 现在转到File-> Project Structure-> Modules-> Dependencies,然后单击+(Jar或目录)
  5. 然后添加opencv jar文件。就我而言,我有:\ opencvFolder \ build \ java \ opencv-java320

它奏效了!希望这会有所帮助:)