【发布时间】:2023-03-30 18:40:01
【问题描述】:
我用的是windows10,eclipse-neon JDK1.8版本, 我收到以下异常。
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.bytedeco.javacpp.Loader.load(Loader.java:385)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2719)
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391)
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385)
at com.segment.processor.AudioMain.main(ApacheMathAudioMain.java:20)
Error getting static method ID of org/bytedeco/javacpp/Loader/putMemberOffset
这是我在 pom.xml 中使用的依赖项
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg</artifactId>
<version>3.0.2-1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>3.1.0-1.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>0.10</version>
</dependency>
【问题讨论】:
-
我建议使用具有良好 Java 包装器的 OpenCV 而不是 JavaCV。
-
检查 jar 文件以查看它们是否包含类,例如 jar tf [jarfile] | grep org.bytedeco.javacpp.avutil
-
删除了 JavaCV 并使用了 OpenCV 依赖项,但仍然得到相同的异常
-
我已经打开了所有可用的 jar,例如
javacpp-0.10, javacpp-1.2.2, opencv-3.1.0-1.2, javacv-1.1等,但没有一个包含avutil类。它实际上在哪里可用.. 我的意思是在哪个依赖项中 -
将此依赖更新为
1.4.1。org.bytedeco javacpp 0.10