线程"main" java.lang.UnsatisfiedLinkError中的异常: no jniavutil in java.library.path:



我在ubuntu 22.04中的intellij中向项目添加并测试javaCV时遇到以下错误。我看过文件(https://github.com/bytedeco/javacv)但不明白该怎么做。我为将javaCV添加到项目中所做的是,文件->项目结构->模块->依赖项(+添加依赖项(然后从我下载的"javacv-platform-1.5.7-bin"文件夹中选择了javacpp.jar、javacv.jar、opencv.jar和ffmpeg.jar。

这是我运行代码后得到的输出:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2434)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:848)
at java.base/java.lang.System.loadLibrary(System.java:2015)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1800)
at org.bytedeco.javacpp.Loader.load(Loader.java:1402)
at org.bytedeco.javacpp.Loader.load(Loader.java:1214)
at org.bytedeco.javacpp.Loader.load(Loader.java:1190)
at org.bytedeco.ffmpeg.global.avutil.<clinit>(avutil.java:14)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:488)
at java.base/java.lang.Class.forName(Class.java:467)
at org.bytedeco.javacpp.Loader.load(Loader.java:1269)
at org.bytedeco.javacpp.Loader.load(Loader.java:1214)
at org.bytedeco.javacpp.Loader.load(Loader.java:1190)
at org.bytedeco.ffmpeg.avformat.Read_packet_Pointer_BytePointer_int.<clinit>(Read_packet_Pointer_BytePointer_int.java:45)
at org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>(FFmpegFrameGrabber.java:362)
at com.cooltrickshome.MovieToImage.convertMovietoJPG(MovieToImage.java:31)
at com.cooltrickshome.MovieToImage.main(MovieToImage.java:25)
Caused by: java.lang.UnsatisfiedLinkError: Could not find jniavutil in class, module, and library paths.
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1767)
... 14 more
Process finished with exit code 1

有人能告诉我们在intellij中将javaCV添加到项目中需要遵循的确切步骤吗?

我遇到了类似的问题,因为它找不到库。我最终构建了自己的ffmpeg,并在jniLibs中复制了dylib文件,并在静态范围中添加了一行类似System.loadLibrary("avutil.57")的代码。

另一种方法可以是设置库路径:-Djava.library.path=/Users/xxx/ffmpeg-java samples/src/main/jniLibs

既然你在Ubuntu中,到目前为止,它应该能够解决你的问题。然而,对于mac,最终结果异常消息变为

尝试过:'/Users/xxx/ffmpeg-java samples/src/main/jniLibs/libavutil.57.dylib',但遇到了另一个问题:(mach-o文件,但不兼容体系结构(具有(arm64(,需要(x86_64((

我仍在计算macM1芯片的ffmpeg部分。

在确保以下jar文件后,它似乎正在运行:

export CLZPATH=$CLZPATH:$JARROOT/org/bytedeco/javacpp/1.5.8/javacpp-1.5.8.jar
export CLZPATH=$CLZPATH:$JARROOT/org/bytedeco/javacpp-presets/ffmpeg/4.1-1.4.4/ffmpeg-4.1-1.4.4.jar
export CLZPATH=$CLZPATH:$JARROOT/org/bytedeco/javacpp-presets/ffmpeg/4.1-1.4.4/ffmpeg-4.1-1.4.4-macosx-x86_64.jar

最新更新