背景
为什么标题不叫java调用opencv?这个问题很玄学,先简单的介绍下背景,在一个springboot项目中需要使用opencv 处理一下图片,因此编译好,opencv,导入库中,然后链接上dll,本地测试的时候还是报错。java.lang.UnsatisfiedLinkError
问题排查
首先搜了很多的相关问题的答案,从百度到谷歌,从博客到官网,能搜到的都搜了一次,相关解决方案是没有导入dll,也就是在运行的时候,需要使用System,load(),来加载dll,或者是导入的时候路劲不正确。
我反复的排查这两个问题,不断的debug ,还是发现没有问题,而且写一个主方法调用的时候也可以正常的执行,只能说明是只有在springboot 这种情况下才会不起作用,于是从代码库中找一个使用过opencv的项目,从代码上逐步对比,发现也并没有什么差异。
于是开始怀疑pom 是不是有问题,处理功能性包之外,也是逐步的对比。知道发现有那么一丁点的差异,devtools
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>1.5.15.RELEASE</version>
</dependency>
想想这个依赖也没有影响到其他的功能,就先把他删除了。删除之后果然没问题了