Eclipse中的OpenCV 3.0.0 java.lang.UnsatisfiedLinkError

时间:2016-10-02 13:21:48

标签: java eclipse ubuntu-14.04 opencv3.0

我正在尝试使用OpenCV 3.0.0设置Eclipse(Neon版本),但我遇到了一个问题。 当我加载图片时,代码如下:

Mat m = Imgcodecs.imread("newimage.jpg");

抛出以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
    at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
    at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:82)
    at TestOpenCVFeats.main(TestOpenCVFeats.java:39)

根据此网站设置一切 Set up OpenCV for Java in Eclipse

还添加了java.library.path的路径:

export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/usr/local/share/OpenCV/java

确认它与:

java -XshowSettings:properties

和$ PATH变量。

还将此命令添加到JVM运行配置:

-Djava.library.path= "/usr/local/share/OpenCV/java"

还试过这行代码,没有它:

System.loadLibrary("libopencv_java300");

路径/ usr / local / share / OpenCV / java上文件的权限是:

-rwxr-xr-x 1 root root 831809 Srp  1  2015 libopencv_java300.so
-rwxr-xr-x 1 root root 300815 Srp  1  2015 opencv-300.jar

我已经尝试了所有可能的组合,仍然会得到相同的错误。 我不知道还有什么可以尝试使这项工作。 当我执行c ++(Eclipse Luna)或python代码时,OpenCV正常工作。 我的操作系统是Ubuntu 14.04。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

好的,好吧,找到了解决方案。 这行代码需要在main中添加:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

答案 1 :(得分:0)

如果要在Windows中使用Eclipse配置OpenCV,请按照以下步骤操作:

  1. 从此链接https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.11/opencv-2.4.11.exe/download下载OpenCV 2.4.11或任何版本
  2. 提取它。
  3. 打开月食。
  4. 创建一个新的Java项目。
  5. 添加OpenCV jar。

    • 右键单击该项目。
    • 选择构建路径。
    • 点击配置构建路径。
    • 单击库。
    • 添加外部罐子。
    • 打开OpenCV提取的文件夹。
    • 打开build / java /
    • 选择opencv-2411.jar并打开。
    • 点击“应用”。
    • 单击确定。
  6. 添加本机库。

您可以通过以下方式使用OpenCv本机库:

  • 将本机库添加到您的opencv jar中。
  • 使用System.load()方法指向Java中的本机库,但请确保必须指定本机库路径。

将本机库添加到您的opencv jar

  • 右键单击该项目。
  • 选择构建路径。
  • 点击配置构建路径。
  • 单击库。
  • 展开opencv jar。
  • 单击本机库。
  • 单击右侧面板中的“编辑”按钮。
  • 单击“外部折叠”。
  • 打开OpenCV提取的文件夹。
  • 打开build / java / x64。(如果您的操作系统是64位,请选择x64或x86)
  • 单击确定。
  • 点击“应用”。
  • 单击确定。

指向Java类中的本机库

  • 将“ opencv_java2411.dll”的位置从opencv \ build \ java \ x64传递到System.load(“ opencv dll的路径”)