【发布时间】:2016-05-08 07:10:42
【问题描述】:
我正在尝试在部署到 Tomcat 服务器的 Spring Boot 项目中使用 OpenCV 作为 war 文件。
无论我尝试什么,我都会得到这个:
java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
我有一个经典的 maven 项目,我在其中测试了 OpenCV 代码,只要我将 opencv_java310 放在项目类路径中,它就可以正常工作。我做了同样的事情,并将这个 jar 添加到我的 Spring boot 项目的类路径中,我还将它添加到 src/main/webapp/WEB-INF/lib 目录中(为了使其在应用程序服务器中可用)。
在 Tomcat 上使用 OpenCV 还需要做什么?我已经走投无路了..
编辑:在 Junit 测试中加载 open-cv 核心库时,它会正确加载:
@Test
public void testOpenCV() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
但是如果我在 Tomcat 上运行应用程序时做同样的事情,我会得到异常。
【问题讨论】:
-
关于上述答案的 cmets,您使用的是 Unix,并且您有一个 .so 文件。在运行 tomcat -Djava.library.path=/home/smajl/Software/opencv/build/lib 时尝试添加此参数(将其添加到启动配置中)。
-
我尝试使用以下 VM 参数运行 Tomcat:-Djava.library.path=/home/smajl/Software/opencv/build/lib/libopencv_java310.so(这是最接近的 .so 文件我找到了)但异常仍然存在......
-
改用
-Djava.library.path=/home/smajl/Software/opencv/build/lib。使用您提供的值,它可能正在寻找/home/smajl/Software/opencv/build/lib/libopencv_java310.so/libopencv_java310.so... -
你是对的,这修复了设置。非常感谢!
-
路径中不要指定.so文件,要加载整个文件夹。按照我的说明直接使用 -Djava.library.path=/home/smajl/Software/opencv/build/lib/ 尝试。
标签: java spring maven opencv tomcat