UnsatisfiedLinkError在Mac上的Eclipse中使用JavaCV

时间:2012-02-12 16:31:40

标签: java opencv path classpath javacv

我确定这将是某种PATH问题,但我不确定我哪里出错了。我正在尝试让JavaCV在我的Eclipse项目中工作,这样我就可以对图像进行一些循环检测,但是在尝试运行其中一个示例项目时,Eclipse会抛出以下异常:

java.lang.UnsatisfiedLinkError

我试图按照http://code.google.com/p/javacv/

中的说明进行操作

我的项目的BuildPath中有javacv.jarjna.jar。我需要做什么才能将正确的文件添加到正确的路径以使JavaCV正常工作?

我尝试将jar文件添加到$ CLASSPATH但是得到了同样的错误。我已经下载并安装了OpenCV,不知道从这个文件夹我需要添加到$ PATH。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:2)

UnsatisfiedLink错误意味着无法将一个或多个本机库文件链接到您的程序中。这通常是由于本机库文件不在JVM所在的位置引起的。

有关详细信息,请参阅http://java.sun.com/docs/books/jni/html/start.html的第2.7节。

答案 1 :(得分:2)

你可以把整个错误通过你的应用程序。有时候问题可能是两个版本的javacv和opencv不兼容。因此,请尝试检查这些版本是否具有兼容版本。

答案 2 :(得分:2)

当我尝试运行我的第一个javacv应用程序时,我也得到了相同的异常。我也尝试了各种各样的东西,最后我发现不兼容的版本是造成这种异常的原因。 所以你的问题也可能就是这种情况。

答案 3 :(得分:1)

我也面临类似的问题,我尝试从源代码构建OpenCV以及使用MacPorts。 比我尝试在eclipse中设置本机库路径指向OpenCV的构建位置但这对我不起作用。 最后,我通过Macports安装OpenCV解决了这个问题,Macports将所有.dylib安装在“/ opt / local / lib”路径中。 此后,我执行了以下shell脚本(在http://code.google.com/p/javacv/wiki/HowToMakeAnApplet处给出)

BADPATH=/opt/local/lib 
for f in libopencv*2.4.dylib; do install_name_tool $f -id @rpath/$f \
-add_rpath /usr/local/lib/ -add_rpath /opt/local/lib/ -add_rpath @loader_path/. \
-change $BADPATH/libopencv_core.2.4.dylib @rpath/libopencv_core.2.4.dylib \
-change $BADPATH/libopencv_calib3d.2.4.dylib @rpath/libopencv_calib3d.2.4.dylib \
-change $BADPATH/libopencv_features2d.2.4.dylib @rpath/libopencv_features2d.2.4.dylib \
-change $BADPATH/libopencv_flann.2.4.dylib @rpath/libopencv_flann.2.4.dylib \
-change $BADPATH/libopencv_gpu.2.4.dylib @rpath/libopencv_gpu.2.4.dylib \
-change $BADPATH/libopencv_highgui.2.4.dylib @rpath/libopencv_highgui.2.4.dylib \
-change $BADPATH/libopencv_imgproc.2.4.dylib @rpath/libopencv_imgproc.2.4.dylib \
-change $BADPATH/libopencv_legacy.2.4.dylib @rpath/libopencv_legacy.2.4.dylib \
-change $BADPATH/libopencv_ml.2.4.dylib @rpath/libopencv_ml.2.4.dylib \
-change $BADPATH/libopencv_nonfree.2.4.dylib @rpath/libopencv_nonfree.2.4.dylib \
-change $BADPATH/libopencv_objdetect.2.4.dylib @rpath/libopencv_objdetect.2.4.dylib \
-change $BADPATH/libopencv_photo.2.4.dylib @rpath/libopencv_photo.2.4.dylib \
-change $BADPATH/libopencv_video.2.4.dylib @rpath/libopencv_video.2.4.dylib; done

运行上面给出的脚本之后,我只是创建了一个示例JavaCV项目(使用http://www.cnblogs.com/ljsspace/archive/2011/08/05/2128948.html给出的示例代码)并且能够从eclipse成功运行它而不设置任何其他路径。