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

vik*_*s89 7 java opencv jenkins

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

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

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

请你帮助我好吗?

谢谢!

Sub*_*mal 6

请在下面找到一个工作片段。您需要适应您的需求。

假设以下文件结构

libs\opencv_java320.dll
pom.xml
src\test\java\sub\optimal\OpenCVTest.java
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

子\最佳\ 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");
    }    
}
Run Code Online (Sandbox Code Playgroud)

运行测试

mvn compile test
Run Code Online (Sandbox Code Playgroud)

输出

...
[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: ...
...
Run Code Online (Sandbox Code Playgroud)


VK3*_*321 5

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

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());
 }
}
Run Code Online (Sandbox Code Playgroud)

和依赖

<dependency>
   <groupId>org.openpnp</groupId>
   <artifactId>opencv</artifactId>
   <version>3.2.0-0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)