javaCV未满足链接错误

javaCV未满足链接错误,java,eclipse,ubuntu,javacv,unsatisfiedlinkerror,Java,Eclipse,Ubuntu,Javacv,Unsatisfiedlinkerror,我对JavaCV有问题 我下载了 我在ubuntu的参考库中添加了.jar文件 我可以在下载的文件中找到示例代码 但错误是 Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/libjniopencv_core3835922554849797701.so: libopencv_core.so.2.4: cannot open shared object file: No such file or directory at

我对JavaCV有问题

我下载了

我在ubuntu的参考库中添加了.jar文件

我可以在下载的文件中找到示例代码

但错误是

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/libjniopencv_core3835922554849797701.so: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)
at java.lang.Runtime.load0(Runtime.java:787)
at java.lang.System.load(System.java:1022)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:403)
at com.googlecode.javacpp.Loader.load(Loader.java:342)
at com.googlecode.javacpp.Loader.load(Loader.java:316)
at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.googlecode.javacpp.Loader.load(Loader.java:335)
at com.googlecode.javacv.cpp.opencv_imgproc.<clinit>(opencv_imgproc.java:96)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.googlecode.javacpp.Loader.load(Loader.java:335)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:91)
at com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171)
at MotionDetector.main(MotionDetector.java:23)
线程“main”java.lang.UnsatifiedLinkError中出现异常:/tmp/libjniopencv_core3835922554849797701.so:libopencv_core.so.2.4:无法打开共享对象文件:没有此类文件或目录
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)
位于java.lang.Runtime.load0(Runtime.java:787)
位于java.lang.System.load(System.java:1022)
位于com.googlecode.javacpp.Loader.loadLibrary(Loader.java:403)
位于com.googlecode.javacpp.Loader.load(Loader.java:342)
位于com.googlecode.javacpp.Loader.load(Loader.java:316)
在com.googlecode.javacv.cpp.opencv_core.(opencv_core.java:131)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:264)
位于com.googlecode.javacpp.Loader.load(Loader.java:335)
在com.googlecode.javacv.cpp.opencv_imgproc.(opencv_imgproc.java:96)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:264)
位于com.googlecode.javacpp.Loader.load(Loader.java:335)
在com.googlecode.javacv.cpp.opencv_highgui上(opencv_highgui.java:91)
位于com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171)
位于MotionDetector.main(MotionDetector.java:23)
我怎样才能解决这个问题? 如何在Ubuntu11.10上配置javaCV来解决这个问题


感谢您的帮助

自述文件在所需软件下说明:

*OpenCV 2.4.0#


我猜这就是问题所在。

自述文件在所需软件下说明:

*OpenCV 2.4.0#


我猜这就是问题所在。

杜德从链接下载库:


并将库opencv-linux-x86.jar添加到您的项目中

dude下载库链接:


并将libraryopencv-linux-x86.jar添加到您的项目中

当本机库无法加载或 当您尝试创建程序的jar文件时。由于.dll文件大多是用c/c++编写的,所以jvm不能将它们包含在jar文件中,或者在尝试运行程序时出现链接错误。但是对于openCV,您可以使用此片段成功加载dll文件

只需创建一个java类并复制粘贴此代码,然后使用该方法成功加载dll文件

/**
*根据{@link file#createTempFile(String,String)},文件前缀必须具有的最小长度。
*/
私有静态最终整数最小前缀长度=3;
公共静态最终字符串本机文件夹路径前缀=“nativeutils”;
/**
*将包含DLL的临时目录。
*/
私有静态文件temporaryDir;
/**
*私有构造函数-永远不会实例化此类
*/
私人土著居民(){
}
/**
*从当前JAR存档加载库
* 
*JAR中的文件被复制到系统临时目录中,然后被加载。临时文件将在之后删除
*退出。
*方法使用字符串作为文件名,因为路径名是“抽象的”,不依赖于系统。
* 
*@param path JAR内文件的路径为绝对路径(以“/”开头),例如/package/file.ext
*@在临时文件创建或读/写操作失败时引发IOException
*@如果源文件(参数路径)不存在,则引发IllegalArgumentException
*如果路径不是绝对路径或文件名短于三个字符,@将引发IllegalArgumentException
*(对{@link File#createTempFile(java.lang.String,java.lang.String)}的限制)。
*@如果在JAR中找不到文件,则抛出FileNotFoundException。
*/
公共静态void loadLibraryFromJar(字符串路径)引发IOException{
if(null==path | |!path.startsWith(“/”){
抛出新的IllegalArgumentException(“路径必须是绝对的(以“/”开头)”);
}
//从路径获取文件名
String[]parts=path.split(“/”);
字符串文件名=(parts.length>1)?parts[parts.length-1]:空;
//检查文件名是否正确
if(filename==null | | filename.length()