问题
前几天在华为openEuler 20.03 64bit with ARM
系统使用javaCV
相关的jar包程序时,正常运行。但换成EulerOS 2.8 64bit with ARM
系统后,却发现如下错误:
Caused by: java.lang.UnsatisfiedLinkError: *** .jar/org/bytedeco/opencv/linux-arm64/libjniopencv_highgui.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1088)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1685)
... 15 more
解决办法
由于已经在openEuler正常运行过,说明aarch64
平台相关的依赖包是已经打包进jar包的,考虑是商业版系统缺少了gtk2的相关库,需要执行如下命令进行安装:
yum install gtk2
安装之后再执行jar就正常运行了!