【问题标题】:JavaCV RedHat Linux 6.6 x64 NoClassDefFound: Could not initialize class org.bytedeco.javacpp.avutilJavaCV RedHat Linux 6.6 x64 NoClassDefFound:无法初始化类 org.bytedeco.javacpp.avutil
【发布时间】:2015-11-29 03:33:15
【问题描述】:

我想在 Linux 机器上运行一个简单的 .flv.mp4 的转换

到目前为止,我包含以下依赖项,它在 Ubuntu 12.x 和 CentOS 上运行良好

<dependency>
   <groupId>org.bytedeco.javacpp-presets</groupId>
   <artifactId>ffmpeg</artifactId>
   <version>2.7.1-1.0</version>
   <classifier>linux-x86_64</classifier>
</dependency>

红帽 uname -a

x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

Red Hat lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.6 (Santiago)
Release:        6.6
Codename:       Santiago

CentOS unname -a

.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

但是在 RedHat Linux 中尝试它时,我得到以下异常

应用程序启动失败

java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.bytedeco.javacpp.Loader.load(Loader.java:390)
    at org.bytedeco.javacpp.Loader.load(Loader.java:358)
    at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2539)
    at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:383)
    at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:377)
    at com.example.Application.convert(Application.java:53)
    at com.example.Application.run(Application.java:103)
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:674)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:969)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:958)
    at com.example.Application.main(Application.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:745)

我尝试了 32 位版本:

<dependency>
   <groupId>org.bytedeco.javacpp-presets</groupId>
   <artifactId>ffmpeg</artifactId>
   <version>2.7.1-1.0</version>
   <classifier>linux-x86</classifier>
</dependency>

同样的结果。

然后我简单地尝试了

org.bytedeco javacv 1.0

mvn package -Dplatform.dependencies=true 所以我得到了所有依赖项。

还是一样。有人知道我做错了什么吗?

【问题讨论】:

    标签: java ffmpeg javacv


    【解决方案1】:

    avutil 类在您使用的版本中不可用。
    使用 2.8.1-1.1 版本。 &lt;version&gt;2.8.1-1.1&lt;/version&gt;

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 2023-03-30
      • 2015-02-28
      • 1970-01-01
      • 2021-11-03
      • 2012-08-01
      • 2012-10-10
      • 2015-11-23
      • 2011-09-28
      相关资源
      最近更新 更多