java.lang.UnsatifiedLinkError:';long org.opencv.core.Mat.n#u Mat()和#x27;
我正试图在Centos 8上使用maven和opencv构建我的Java项目。通过“尝试某种修复方法”,我可以将其构建为运行API的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
.jar
文件。但是当我的服务从opencv调用lib时,它抛出以下错误:java.lang.UnsatisfiedLinkError:“long org.opencv.core.Mat.n_Mat()”
我在centos 8中安装opencv的参考资料:这是我的步骤:
wgethttps://github.com/opencv/opencv/archive/4.4.0.zip
并将其解压缩cd opencv
mkdir build
cd build
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