在将javacv项目部署到Linux系统中时,运行项目会报以下错误:
org.bytedeco.javacv.FrameGrabber$Exception: Failed to load class org.bytedeco.javacv.FFmpegFrameGrabber
at org.bytedeco.javacv.FFmpegFrameGrabber.tryLoad(FFmpegFrameGrabber.java:121)
at org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>(FFmpegFrameGrabber.java:129)
at com.zj.init.InitServer.loadFFmpeg(InitServer.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
解决方法:
根据报错信息:Caused by: java.lang.UnsatisfiedLinkError: /root/.javacpp/cache/ffmpeg-4.2.2-1.5.3-linux-x86_64.jar/org/bytedeco/ffmpeg/linux-x86_64/libjniavdevice.so: libxcb.so.1: cannot open shared object file: No such file or directory
可知,系统找不到libxcb.so这个库文件。
运行dnf/yum/apt-get install libxcb安装