我花了很长时间尝试用OpenCV安装Java,我可以在Android上安装Java,但对于一个简单的Java项目却不能这样做。
我有带所有扩展的vscode,并在.classpath中设置了一个带有jar的项目
我得到了:
java.lang.UnsatisfiedLinkError: org.opencv.core.Core
我知道问题在于没有设置实际的OpenCV-420.dll,但是我找不到任何关于如何在vscode中设置它的文档。
我试过使用Ecplise (https://opencv-java-tutorials.readthedocs.io/en/latest/01-installing-opencv-for-java.html),但是我得到了同样的错误
发布于 2020-02-02 14:46:31
这对我来说很管用:
package app;
import java.lang.reflect.Field;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
// import org.opencv.core.Core;
public class App {
public static void main(String[] args) {
try {
App.loadOpenCV_Lib();
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void loadOpenCV_Lib() throws Exception {
// get the model
String model = System.getProperty("sun.arch.data.model");
// the path the .dll lib location
String libraryPath = "D:/opencv/build/java/x86/";
// check for if system is 64 or 32
if(model.equals("64")) {
libraryPath = "D:/opencv/build/java/x64/";
}
// set the path
System.setProperty("java.library.path", libraryPath);
Field sysPath = ClassLoader.class.getDeclaredField("sys_paths");
sysPath.setAccessible(true);
sysPath.set(null, null);
// load the lib
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
}说明: loadOpenCV_Lib将动态导入带有反射的包
https://stackoverflow.com/questions/60026852
复制相似问题