问题

前几天在华为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就正常运行了!

更多推荐