有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

opencv“Java.lang.unsatifiedLinkError:Java.library.path中没有opencv_java320”

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

“Java.lang.UnsatifiedLink错误:Java.library.path中没有opencv_java320”

我阅读了这里的其他问题,并设置了java。图书馆jar和dll文件所在路径的路径,但仍然会出现错误,我的想法也不多了

你能帮帮我吗

谢谢


共 (5) 个答案

  1. # 1 楼答案

    如果您使用的是STS/Eclipse或任何IDE,那么请按照以下步骤来解决您的不满意的linkerror-no-opencv-java320错误

    窗口->;偏好->;用户库->;新->;创建像附加图像一样的新库

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

    enter image description here

  2. # 2 楼答案

    这对我有用。我在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());
     }
    }
    

    和依赖

    <dependency>
       <groupId>org.openpnp</groupId>
       <artifactId>opencv</artifactId>
       <version>3.2.0-0</version>
    </dependency>
    
  3. # 3 楼答案

    如果您使用IntelliJ IDEA,您应该添加OpenCV库作为本机库位置

    1. 转到File>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-***。罐子

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

    enter image description here

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

    参考资料:How to set-up OpenCV in IntelliJ IDEAAadam

    PS:您还可以在VM选项中添加java.library.path,如-Djava.library.path={PATH_T0_LIBRARY}

    enter image description here

  4. # 4 楼答案

    我在intellij Idea上的工作:

    1. 在intellij Idea中打开您的项目
    2. 转到文件->;项目结构->;然后单击+(Java)
    3. 然后添加新的。dll文件。在我的例子中,我有:\opencvFolder\build\java\x64\opencv\u java320。动态链接库
    4. 现在转到文件->;项目结构->;模块->;然后单击+(JAR或目录)
    5. 然后添加opencv jar文件。在我的例子中,我有:\opencvFolder\build\java\opencv-java320

    成功了!希望这会有所帮助:)

  5. # 5 楼答案

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

    假设以下文件结构

    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>
    

    sub\optimal\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: ...
    ...