如何解决此 UnsatisfiedLinkError?
How do I resolve this UnsatisfiedLinkError?
早上好,
今天我开始使用 SikuliX 和 Java 进行 POC。我想尝试 this link 中的示例。这里截取并搜索了部分屏幕。
当我执行这个时,我收到错误:
[error] RunTimeAPI: loadLib: opencv_java not usable:
java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.sikuli.script.FindInput2.<clinit>(FindInput2.java:17)
at org.sikuli.script.Finder.<init>(Finder.java:21)
at org.sikuli.script.Region.doCheckLastSeenAndCreateFinder(Region.java:2936)
at org.sikuli.script.Region.checkLastSeenAndCreateFinder(Region.java:2897)
at org.sikuli.script.Region.doFind(Region.java:2827)
at org.sikuli.script.Region.find(Region.java:2325)
at Apl.sikuliXHighlight(Apl.java:50)
at Apl.main(Apl.java:26)
Caused by: org.sikuli.script.SikuliXception: fatal: problem with native library: opencv_java
at org.sikuli.script.RunTime.terminate(RunTime.java:70)
at org.sikuli.script.RunTime.libsLoad(RunTime.java:792)
at org.sikuli.script.RunTime.loadLibrary(RunTime.java:949)
at org.sikuli.script.Finder2.<clinit>(Finder2.java:35)
... 8 more
[4346 debug] RunTimeAPI: ***** final cleanup at System.exit() *****
我将 library 添加到我的 POM.XML。但这并没有帮助。
我是不是用错了库?
一些附加信息:
我在 Ubuntu 18.10 机器上使用 Intellij。
如果我遗漏了什么,请告诉我。非常感谢。
@编辑:
我检查了可能的重复项 post。但我没有使用 OpenCV,而是 SikuliX。我只需要 OpenCV 作为依赖(因为它被 SikuliX 使用)。
@Edit2:
经过更多挖掘并尝试遵循 link(重复)中的信息,我发现了 this。它提供了在 Linux 系统上使用所需的信息。
首先检查java版本。
java -version
然后安装opencv
sudo apt install libopencv3.2-java
sudo ln -s /usr/lib/jni/libopencv_java320.so /usr/lib/libopencv_java.so
早上好,
今天我开始使用 SikuliX 和 Java 进行 POC。我想尝试 this link 中的示例。这里截取并搜索了部分屏幕。
当我执行这个时,我收到错误:
[error] RunTimeAPI: loadLib: opencv_java not usable:
java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.sikuli.script.FindInput2.<clinit>(FindInput2.java:17)
at org.sikuli.script.Finder.<init>(Finder.java:21)
at org.sikuli.script.Region.doCheckLastSeenAndCreateFinder(Region.java:2936)
at org.sikuli.script.Region.checkLastSeenAndCreateFinder(Region.java:2897)
at org.sikuli.script.Region.doFind(Region.java:2827)
at org.sikuli.script.Region.find(Region.java:2325)
at Apl.sikuliXHighlight(Apl.java:50)
at Apl.main(Apl.java:26)
Caused by: org.sikuli.script.SikuliXception: fatal: problem with native library: opencv_java
at org.sikuli.script.RunTime.terminate(RunTime.java:70)
at org.sikuli.script.RunTime.libsLoad(RunTime.java:792)
at org.sikuli.script.RunTime.loadLibrary(RunTime.java:949)
at org.sikuli.script.Finder2.<clinit>(Finder2.java:35)
... 8 more
[4346 debug] RunTimeAPI: ***** final cleanup at System.exit() *****
我将 library 添加到我的 POM.XML。但这并没有帮助。
我是不是用错了库?
一些附加信息: 我在 Ubuntu 18.10 机器上使用 Intellij。
如果我遗漏了什么,请告诉我。非常感谢。
@编辑:
我检查了可能的重复项 post。但我没有使用 OpenCV,而是 SikuliX。我只需要 OpenCV 作为依赖(因为它被 SikuliX 使用)。
@Edit2: 经过更多挖掘并尝试遵循 link(重复)中的信息,我发现了 this。它提供了在 Linux 系统上使用所需的信息。
首先检查java版本。
java -version
然后安装opencv
sudo apt install libopencv3.2-java
sudo ln -s /usr/lib/jni/libopencv_java320.so /usr/lib/libopencv_java.so