完整 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 .