【发布时间】:2012-10-02 04:31:14
【问题描述】:
我正在使用 Windows 7 并在尝试运行使用 opencv 库的 Java 项目时遇到此异常:
Exception in thread "main"
java.lang.UnsatisfiedLinkError: no opencv_java 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 org.opencv.highgui.Highgui.<clinit>(Highgui.java:416)
at teste.main(teste.java:21)
我做错了什么?缺少一些进口吗?
我想在 Eclipse(不是 Android)中创建一个使用 openCV 的简单 Java 项目。
- 所以我已经从 OpenCV-2.4.2.exe 文件中提取 javacv 到 C:\
- 然后执行“cmake -G”MinGW Makefiles“-DBUILD_opencv_java=ON C:\opencv”命令,然后是“mingw32-make”。一切都是 构建没有错误或警告
- 在我的环境变量中添加了 opencv dll 之后
【问题讨论】:
-
你能添加一些代码来将 opencv 库集成到 java 中吗?看起来 Classloader 找不到库。
-
在运行配置中,我添加了
-Djava.library.path=C:\opencvFinal参数。同样在 Java Build Path 中,我添加了外部类文件夹C:\opencvFinal\bin,其中保存了所有 opencv dll。当我打电话给System.loadLibrary("opencv_java");时,它给了我例外。 -
等等,你只有 dll 吗?您需要的是一个包装这些 dll 的 jar。或者您需要使用 jni 自己包装它们。
-
这是我第一次遇到这个问题。你知道任何包装opencv dll的罐子吗?
-
对不起,没有。我想如果你有类似 opencv_java 的东西,它们可能会生成。但是如果你只有
dlls,那么你有很多工作要做。 或者找到一个现成的java集成。看,dll 是用于 C/C++ 的。要在 Java 中使用它们,您必须使用本机接口 (en.wikipedia.org/wiki/Java_Native_Interface#How_the_JNI_works)。