完整 Eclipse 部署 OpenCV-4.X 環境 (創建UserLibraries)
1 測試代碼
package com.xu.find;
import org.opencv.core.Core;
public class OpenCV {
static {
//在使用OpenCV前必須加載Core.NATIVE_LIBRARY_NAME類,否則會報錯
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
String[] split = System.getProperty("java.library.path").split(";");
for (String string : split) {
System.out.println(string);
}
}
}
2 測試錯誤
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java420 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.xu.find.OpenCV.<clinit>(OpenCV.java:9)
3 分析錯誤
這裏提示 no opencv_java420 in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java420 in java.library.path
輸出 java.library.path
3.1 代碼
package com.xu.find;
public class OpenCV {
public static void main(String[] args) {
String[] split = System.getProperty("java.library.path").split(";");
for (String string : split) {
System.out.println(string);
}
}
}
3.2 結果
C:\Program Files\Java\jre1.8.0_191\bin
C:\WINDOWS\Sun\Java\bin
C:\WINDOWS\system32
C:\WINDOWS
C:/Program Files/Java/jre1.8.0_191/bin/server
C:/Program Files/Java/jre1.8.0_191/bin
C:/Program Files/Java/jre1.8.0_191/lib/amd64
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR
C:\Program Files\Java\jdk1.8.0_191\bin
C:\Program Files\Java\jdk1.8.0_191\jre\bin
D:\Apache\apache-maven-3.6.3\bin
C:\Program Files\TortoiseSVN\bin
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\Users\hyacinth\AppData\Local\Microsoft\WindowsApps
D:\JetBrains\PyCharm Community Edition 2019.3.3\bin
C:\Users\hyacinth\AppData\Local\Programs\Microsoft VS Code\bin
D:\Work\IDE\eclipse
.
這可能是因爲Java引用的Dll文件不存在、讀寫權限或虛擬機無法定位
只需要將對應的Dll文件複製到上面任意一個位置即可(最後的 . 代表本項目)
4 解決辦法
這裏選着最後一個 java.library.path .