java.lang.UnsatifiedLinkError:';long org.opencv.core.Mat.n#u Mat()和#x27;

java.lang.UnsatifiedLinkError:';long org.opencv.core.Mat.n#u Mat()和#x27;,java,spring-boot,opencv,centos8,Java,Spring Boot,Opencv,Centos8,我正试图在Centos 8上使用maven和opencv构建我的Java项目。通过“尝试某种修复方法”,我可以将其构建为运行API的.jar文件。但是当我的服务从opencv调用lib时,它抛出以下错误:java.lang.UnsatisfiedLinkError:“long org.opencv.core.Mat.n_Mat()” 我在centos 8中安装opencv的参考资料: 这是我的步骤: 安装cmake和ant。 下载:wgethttps://github.com/opencv/op

我正试图在Centos 8上使用maven和opencv构建我的Java项目。通过“尝试某种修复方法”,我可以将其构建为运行API的
.jar
文件。但是当我的服务从opencv调用lib时,它抛出以下错误:
java.lang.UnsatisfiedLinkError:“long org.opencv.core.Mat.n_Mat()”

我在centos 8中安装opencv的参考资料:
这是我的步骤:

  • 安装cmake和ant。
  • 下载:
    wgethttps://github.com/opencv/opencv/archive/4.4.0.zip
    并将其解压缩
  • 运行命令:
    cd opencv

    mkdir build

    cd build
  • 运行cmake:
    cmake-dcmake\u BUILD\u TYPE=RELEASE-dcmake\u INSTALL\u PREFIX=/usr/local-DBUILD\u TESTS=OFF..
  • make

    sudo make安装

    运行此步骤后输出:
    移动库:
    cp-r/usr/local/share/java/opencv4/libopencv_java440.so/usr/lib
  • 检查版本:
    ldconfig-v | grep opencv
    这是我的输出:

  • 下面是加载核心本机库的java代码:

      public static void main(String[] args) {
            System.load("/user/lib/libopencv_java440.so");
            SpringApplication.run(MyApp.class, args);
        }
    
    我的进程抛出错误:

        public static Mat BufferedImage2Mat(BufferedImage image) throws IOException {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            ImageIO.write(image, "png", byteArrayOutputStream);
            byteArrayOutputStream.flush();
            return Imgcodecs.imdecode(new MatOfByte(byteArrayOutputStream.toByteArray()), Imgcodecs.IMREAD_UNCHANGED); // Throw in this line
        }
    
    你建议我下一步做什么

    注意:我的代码在本地(Windows)正常运行,更改为
    libopencv\u java440.dll
    并将
    opencv-440.jar
    添加到eclipse中的类路径中。

    我找到了简单的解决方法。
    在pom.xml中添加依赖项:

    <dependency>
        <groupId>org.opencv</groupId>
        <artifactId>opencv-440</artifactId>
        <version>4.4.0</version>            
    </dependency>
    
    
    org.opencv
    opencv-440
    4.4.0            
    
    通过命令将opencv-440.jar注册到maven:

    mvn安装:安装文件-Dfile=/path/opencv-440.jar-DgroupId=org.opencv-DartifactId=opencv-440-Dversion=4.4.0-dpackage=jar

    我找到了解决这个问题的简单方法。
    在pom.xml中添加依赖项:

    <dependency>
        <groupId>org.opencv</groupId>
        <artifactId>opencv-440</artifactId>
        <version>4.4.0</version>            
    </dependency>
    
    
    org.opencv
    opencv-440
    4.4.0            
    
    通过命令将opencv-440.jar注册到maven:
    mvn安装:安装文件-Dfile=/path/opencv-440.jar-DgroupId=org.opencv-DartifactId=opencv-440-Dversion=4.4.0-dpackage=jar