背景
爲什麼標題不叫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>
想想這個依賴也沒有影響到其他的功能,就先把他刪除了。刪除之後果然沒問題了