线程“Thread-60”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有jniopencv_core

时间:2014-09-05 12:38:35

标签: java maven opencv

尝试使用命令" mvn clean install"来构建sikuli-slides-1.5.0,我得到了上面引用的堆栈跟踪。我正在使用Windows 7,并尝试了我在这里提出的各种解决方案所遇到的指示无济于事。用户和系统定义变量的My Path和CLASSPATH变量包括:

" C:\的OpenCV \建立\ 64 \ VC10 \ BIN"

我多次重启我的机器。

此外,我已将javacv.jar,javacv.windows-x86.jar,javacv.windows-x86_64.jar添加到我项目的构建路径中,并在我的pom.xml中添加了javacv-0.9.jar。我也在我的pom中加入了javacpp-0.9.jar。我可以在我的构建路径上直观地看到所有上面引用的jar,并可以将jniopencv_core导入到我的任何类中。任何帮助将不胜感激。在执行JUnit测试AutomationExecutorExceptionTest.java时,测试失败并创建一个必须手动关闭的孤立java.exe进程。

下面列出了完整的堆栈跟踪。

  

线程中的异常"线程-60" java.lang.UnsatisfiedLinkError:> java.library.path中没有jniopencv_core          at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)          在java.lang.Runtime.loadLibrary0(Runtime.java:849)          在java.lang.System.loadLibrary(System.java:1088)          在org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)          在org.bytedeco.javacpp.Loader.load(Loader.java:410)          在org.bytedeco.javacpp.Loader.load(Loader.java:353)          在org.bytedeco.javacpp.opencv_core。(opencv_core.java:10)          at org.bytedeco.javacpp.helper.opencv_core $ AbstractIplImage.create(openc   v_core.java:909)          at org.bytedeco.javacpp.helper.opencv_core $ AbstractIplImage.createFrom(o   pencv_core.java:999)          at org.bytedeco.javacpp.helper.opencv_core $ AbstractIplImage.createFrom(o   pencv_core.java:971)          at org.bytedeco.javacpp.helper.opencv_core $ AbstractIplImage.createFrom(o   pencv_core.java:968)          在org.sikuli.core.cv.ImagePreprocessor.createGrayscale(ImagePreprocesso   r.java:43)          at org.sikuli.core.search.TemplateMatcher.findMatchesByGrayscaleAtOrigin   alResolution(TemplateMatcher.java:71)          at org.sikuli.api.ImageTarget.getUnorderedMatches(ImageTarget.java:127)          at org.sikuli.api.DefaultTarget.doFindAll(DefaultTarget.java:128)          at org.sikuli.api.DefaultScreenRegion.findAll(DefaultScreenRegion.java:7   4)          at org.sikuli.slides.api.sikuli.CrossSearchStrategy.testHypotheses(Cross   SearchStrategy.java:85)          在org.sikuli.slides.api.sikuli.CrossSearchStrategy.perform(CrossSearchS   trategy.java:39)          at org.sikuli.slides.api.sikuli.ContextImageTarget.doFindAll(ContextImag   eTarget.java:122)          at org.sikuli.api.DefaultScreenRegion._find(DefaultScreenRegion.java:88)

   at org.sikuli.api.DefaultScreenRegion.find(DefaultScreenRegion.java:80)
   at org.sikuli.slides.api.actions.TargetAction.execute(TargetAction.java:
     

26)          at org.sikuli.slides.api.actions.RetryAction.execute(RetryAction.java:51   )          at org.sikuli.slides.api.actions.ParallelAction $ Worker.run(ParallelActio   n.java:35)          在java.lang.Thread.run(Thread.java:745)

3 个答案:

答案 0 :(得分:0)

您的堆栈跟踪包含以下行:

Exception in thread "Thread-60" java.lang.UnsatisfiedLinkError: no jniopencv_cor e in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)

注意jniopencv_core之间的空间

你的一个配置文件包含一个空间,它不应该在那里。

答案 1 :(得分:0)

javacv文件的指示非常混乱。问题是我必须实际爆炸jar文件的内容并在目录中公开DLL。与javacv的jar一起打包的指令指示我简单地将二进制文件放在类路径上。

答案 2 :(得分:0)

我有同样的问题,我通过在Sikuli Slides 1.5.1的Maven项目中添加以下依赖项来解决它:

GroupId:org.bytedeco.javacpp-presets AritfactId:opencv 版本:2.4.9-0.9 类型:jar 分类器:windows-x86_64

在我的情况下,我使用的是Windows 7 64位。添加此依赖项后,我能够成功构建Sikuli幻灯片。