【问题标题】:Open CV java.lang.UnsatisfiedLinkErrorOpencv java.lang.UnsatisfiedLinkError
【发布时间】:2022-02-01 19:54:55
【问题描述】:

大家好,我正在开发一个 Scala/Java 项目,我们正在使用 OpenCv 进行图像处理。我在尝试导入库时被困了好几天,遇到了不同的错误,但现在我在最后一次尝试中遇到的错误是

Uncaught error from thread [application-akka.actor.default-dispatcher-9]: org.opencv.imgcodecs.Imgcodecs.dicomJpgMatRead_0(JII)J, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[application
java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.dicomJpgMatRead_0(JII)J

请,如果有人可以帮助我,我将不胜感激。我不知道还能尝试什么。

提前谢谢你!

【问题讨论】:

  • 在您提供更多细节和至少显示您尝试过的代码示例之前,很难做出任何假设。仅基于错误,我假设您没有提供 opencv 所需的本机库或找不到它。你检查过这个stackoverflow.com/questions/39817457/…
  • 这通常发生在您的代码在编译时可以访问该类但在运行时却没有。在许多 IDE 中,这取决于您放置类的位置或部署代码的方式。 UnsatisfiedLinkError 专门指在运行时找不到的 DLL(或 Linux 中的 Lib)。您正在运行的代码是否可以访问动态链接库? (显然不是,找出原因)
  • 这能回答你的问题吗? OpenCV java.lang.UnsatisfiedLinkError
  • 谢谢@ChristophRackwitz 但这不能解决我的问题:(

标签: java scala opencv


【解决方案1】:

这通常发生在您的代码在编译时可以访问该类但在您运行时没有。在许多 IDE 中,这取决于您放置类的位置或部署代码的方式。 UnsatisfiedLinkError 专门指在运行时找不到的 DLL(或 Linux 中的 Lib)。您正在运行的代码是否可以访问动态链接库? (显然不是,找出原因)

【讨论】:

    【解决方案2】:

    大家好,感谢您的回复。我尝试(至少我认为)我找到的所有解决方案,包括您提到的链接中的一次@zoranjeremic。

    我正在处理一个 Java 项目,该项目包含一个类“JDicomImageLoader”,即需要 opencv 库的类。在它里面我有一个方法调用设置:

    现在我使用带有绝对路径的System.load,但我也尝试使用相应的“java.library.path”执行System.loadLibrary

    然后我编译这个 Java 项目 (sbt compile) 并在本地发布 (sbt publishlocal) 以在我的 Scala 项目中使用。

    【讨论】:

    • 您确定您的 java.library.path 配置正确吗?在运行 System.loadLibrary 之前尝试打印它,以确保它指向包含 libopencv 库的 macosx-x86-64 目录
    • 或者尝试使用OpenCV.loadShared();
    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 2021-11-25
    • 2011-03-18
    相关资源
    最近更新 更多