2013-05-01 51 views
9

我在添加openCV到eclipse-project的构建路径时遇到了问题。我按照在本网站上的教程进行操作:http://docs.opencv.org/2.4.4-beta/doc/tutorials/introduction/desktop_java/java_dev_intro.html#create-a-simple-java-project-in-eclipse在eclipse中为java构建路径添加openCV

但执行的代码片段给出了这样的控制台输出:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv-java2.4.4 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 camStatisticsTests.RawTests.main(RawTests.java:20) 

我有什么为了得到OpenCV的做与Java和Eclipse工作。我想用它作为一个普通的Java库。

回答

0

我找到了解决方案。本教程跳过了一个步骤,其中必须添加一个dll到“本机构建路径”。该DLL位于“opencv /构建/ java/x86”的32位Java我猜。虽然我不知道为什么是这样。如果有人能解释这一点,会很好。

2

OpenCV java库正确链接到您的Eclipse项目。

问题是OpenCV本机库不在java.library.path中。该行抛出异常

static{ System.loadLibrary("opencv_java244"); } 

它将java库链接到本机。

当您在您的计算机上安装OpenCV时,它还会在您的系统某处安装本地dll库,并且当您拨打System.loadLibrary时,您告诉java搜索并加载该库。

您目前的问题是Java无法在您的系统中找到此库,或者是因为该库不在某个java.library.path文件夹中,或者因为您没有安装OpenCV(也可以看看该版本,也许您有不是2.4.4,因为最后一个是2.4.5,在这种情况下你将不得不调整字符串)。

我只注意到你的异常是关于“opencv-java2.4.4”。请确保在您的System.loadLibrary调用中正确拼写形式为“opencv_java244”的表单。

我也将您重定向到我的answer之一,它与JavaCV有关,但是更详细地解释了发生了什么。

+0

谢谢你的回答,但实际上我自己发现了这个问题。我必须给图书馆的DLL。我不知道为什么,也许你可以给我更多的见解... – kiltek 2013-05-01 10:48:00

+1

_dll_库必须在java可以找到它的地方。它可以在windows $ PATH,'java.library.path'中列出的文件夹中,在Eclipse本地构建路径中指定(您已完成)或将'-Djava.library.path'传递到命令行。 OpenCV需要_dll_的原因是因为OpenCV是一个C++库,为了在Java中使用它,我们需要JNI。 JNI将java方法调用映射到本地库方法,最终调用OpenCV库“执行工作”。 – StreakyCobra 2013-05-01 11:34:46

1

我找到了解决方案。实际的dll位于openCV\opencv\build\java\x64\文件夹中。在我的情况下,它的名字是opencv_java247.dll,所以我已经在我的java代码中将System.loadLibrary("opencv_java244")更改为System.loadLibrary("opencv_java247")。我也把本地库的位置作为E:/Sagar_tools/tools/openCV/opencv/build/java/x64(这是我的完整路径的DLL)。

7

我有同样的问题。

这事发生,因为我和他们的 '本机库位置' 配置错误:

转到日食 - >窗口 - >首选项:

Goto Eclipse -> Window -> Preferences

转到用户库:

enter image description here

确保您的本机库位置路径是(更改c:/ opencv -2.4。9到自己的OpenCV的文件夹):

C:/opencv-2.4.9/build/java/x64 

,而不是:

C:/opencv-2.4.9/build/x64 

(我错过了/JAVA文件夹...)

-1

更改代码System.loadLibrary("opencv_java244") 希望你将本机路径设置为正确的文件夹和opencv罐已建立路径

1

对我来说,Eclipse>外部jar> n ative library config = opencv/build/lib working