【问题标题】:adding openCV to java buildpath in eclipse在eclipse中将openCV添加到java构建路径
【发布时间】:2013-04-25 08:19:11
【问题描述】:

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

但是执行代码片段会给出这个控制台输出:

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库来使用。

【问题讨论】:

    标签: java windows eclipse opencv


    【解决方案1】:

    我遇到了同样的问题。

    发生这种情况是因为我的“本地库位置”配置有误:

    转到 Eclipse -> 窗口 -> 首选项:

    转到用户库:

    确保你的本机库位置路径是(将 c:/opencv-2.4.9 更改为你自己的 opencv 文件夹):

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

    而不是:

    C:/opencv-2.4.9/build/x64
    

    (我错过了 /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 相关,但更详细地解释了正在发生的事情。

      【讨论】:

      • 感谢您的回答,但实际上我自己发现了问题。我必须给图书馆它的 dll。我不知道为什么,也许你可以给我更多的见解......
      • dll 库必须在 java 可以找到的地方。它可以在 Windows $PATH 中,在 java.library.path 中列出的文件夹中,在 Eclipse 本地构建路径中指定(您所做的),或者通过将 -Djava.library.path 传递给命令行。 OpenCV 需要 dll 的原因是因为 OpenCV 是一个 C++ 库,要从 Java 中使用它,我们需要 JNI。 JNI 将 java 方法调用映射到本地库方法,最终调用 OpenCV 库来“完成工作”。
      【解决方案3】:

      我找到了解决方案。实际的 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 的完整路径)。

      【讨论】:

        【解决方案4】:

        对我来说,Eclipse > 外部 jar > 本机库 config = opencv/build/lib 工作过

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            把代码改成System.loadLibrary("opencv_java244") 希望您将本机路径设置为正确的文件夹,并且 opencv jar 已在构建路径中设置

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-25
              • 1970-01-01
              • 1970-01-01
              • 2015-06-04
              • 2013-06-02
              • 2011-02-13
              相关资源
              最近更新 更多