javaweb使用opencv已引用dll链接库却无法加载CascadeClassifier的问题

搞了两天了还没搞好这个问题,在测试类main函数里面运行没有任何问题,但是部署到tomcat的web应用的时候就死活加载不了CascadeClassifier,一直卡在这。

Caused by: java.lang.UnsatisfiedLinkError: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Ljava/lang/String;)J
    at org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Native Method)
    at org.opencv.objdetect.CascadeClassifier.<init>(CascadeClassifier.java:37)
    at tool.Utils.FaceCompare.<clinit>(FaceCompare.java:19)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1224)
    ... 60 more

加载的代码如下:
一开始怀疑是opencv_java401.dll没有加载到,但使用绝对路径load去读取也没有用(main方法里面有用),网上能查的方法都试过了(把dll文件放到各个文件夹下都没用),有大佬能帮帮我吗

 // 初始化人脸探测器
     private static CascadeClassifier faceDetector;
     static {
         System.out.println("路径"+System.getProperty("java.library.path"));
         System.load("E:\\opencv\\opencv\\build\\java\\x64\\opencv_java401.dll");
         faceDetector = new CascadeClassifier("C:\\Users\\zhyuse\\Desktop\\new\\opencv\\face-detection-master\\resources\\haarcascades\\haarcascade_frontalface_alt.xml");
     }

1个回答

springboot里 引入了一些jar包导致运行不正常 去掉就好了 下边这是我的 去掉后运行正常

org.springframework.boot
spring-boot-devtools
runtime

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问