当前位置: 首页 > wzjs >正文

肥城住房和城乡建设局网站威海做网站

肥城住房和城乡建设局网站,威海做网站,新手做的网站,龙岩app定制在 Java 项目中,尤其是使用了 JavaCV 或 FFmpeg 的项目中,native(本地库)指的是与操作系统和硬件架构相关的二进制文件(即动态链接库),它们不是 Java 编写的,而是 C/C 等语言编译生成…

在 Java 项目中,尤其是使用了 JavaCV 或 FFmpeg 的项目中,native(本地库)指的是与操作系统和硬件架构相关的二进制文件(即动态链接库),它们不是 Java 编写的,而是 C/C++ 等语言编译生成的。

🧩 常见的 native 文件类型


📁 在 JavaCV/FFmpeg 中常见的 native 库包括:
jniavutil
jniavcodec
jniavformat
jniavdevice
jnijava
这些都是 FFmpeg 提供的核心模块,通过 JavaCPP 封装后供 Java 调用

1 截图功能报错:

【业务】接口异常 接口接口地址:/index/api/getSnap 错误信息:Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

说明 JVM 在运行时无法找到 native 库(如 jniavutil.dll / libjniavutil.so),这通常是因为:
✅ 原因分析
Maven 打包插件未正确处理 native 文件
默认情况下,Spring Boot 的 spring-boot-maven-plugin 不会将 native 文件打包进最终的 .jar 文件。
即使你在依赖中引入了 windows-x86_64 或 linux-x86_64 的 native 包,它们也不会自动被提取并放入运行路径。
native 文件没有被释放到文件系统
JavaCPP 需要将 native 文件从 JAR 中提取到临时目录或指定目录加载。
如果这个过程失败,就会出现 UnsatisfiedLinkError。
平台不匹配
如果你在 Windows 上开发,但打包部署到了 Linux,而没有切换依赖的 <classifier>,也会导致找不到 native 文件。

配置pom文件:

  <!--JavaCV相关依赖--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.5.10</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>6.1.1-1.5.10</version><classifier>windows-x86_64-gpl</classifier></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>6.1.1-1.5.10</version><classifier>linux-x86_64-gpl</classifier></dependency><!-- Linux x86_64 示例 --><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg-platform</artifactId><version>6.1.1-1.5.10</version></dependency>

打包:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 强制 spring-boot 使用 ZIP layout 来打包 --><layout>ZIP</layout><includes><include><groupId>org.bytedeco</groupId></include></includes><!-- 可选:保留 system scope --><includeSystemScope>true</includeSystemScope></configuration>
</plugin>

2 linux gcc版本过低。

重新安装 devtoolset-9

要求 4.9以上

# 备份原有 repo 文件
sudo mv /etc/yum.repos.d/ /etc/yum.repos.d.bak/
sudo mkdir -p /etc/yum.repos.d/# 下载阿里云源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 可选:添加 SCL 源
sudo tee /etc/yum.repos.d/CentOS-SCLo-scl.repo << 'EOL'
[centos-sclo-rh]
name=CentOS-7 - SCLo RH
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1[centos-sclo-sclo]
name=CentOS-7 - SCLo SCLO
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
EOL# 清理并重建缓存
sudo yum clean all
sudo yum makecache
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-9

安装好gcc 9.0才可以执行ffmpeg

启动服务

nohup java  -Dloader.include=org.bytedeco -Dloader.explode=true -jar -Xms128m -Xmx1024m  j-media-server.jar /dev/null 2>&1 &

继续报错:

【业务】接口异常 接口接口地址:/index/api/getSnap 错误信息:Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: /opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/opt/rh/devtoolset-9/root/usr/lib64/dyninst:/opt/rh/devtoolset-9/root/usr/lib/dyninst:/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path: /opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/opt/rh/devtoolset-9/root/usr/lib64/dyninst:/opt/rh/devtoolset-9/root/usr/lib/dyninst:/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib

解决方案:手动提取 native 文件 + 指定路径
步骤一:从 Maven 中提取 Linux 兼容的 .so 文件
你当前 pom.xml 引用了以下依赖:

<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg</artifactId>
<version>6.1.1-1.5.10</version>
<classifier>linux-x86_64-gpl</classifier>
</dependency>

C:\Users\你的用户名\.m2\repository\org\bytedeco\ffmpeg\6.1.1-1.5.10\
找到:

ffmpeg-6.1.1-1.5.10-linux-x86_64-gpl.jar

解压:

unzip ffmpeg-6.1.1-1.5.10-linux-x86_64-gpl.jar -d ffmpeg_native/

上传到目录:

/usr/local/zlmwebrtc/natives/

最后实在不行直接在docker 运行吧

FROM centos:8# 安装必要依赖(可选)
RUN dnf install -y java-11-openjdk ffmpeg# 创建 native 文件存放目录
COPY natives /opt/natives# 拷贝 jar 包
COPY target/j-media-server.jar /app.jar# 设置 JVM 启动参数
ENTRYPOINT ["java", \"-Dloader.include=org.bytedeco", \"-Djava.library.path=/opt/natives", \"-Xms128m", "-Xmx1024m", \"-jar", "/app.jar"]

# 构建镜像
docker build -t j-media-server .# 创建本地目录存放 native 文件(确保 libjniavutil.so 等存在)
mkdir -p ./natives# 将 Windows 上 Maven 中提取出的 .so 文件拷贝到此目录
cp ffmpeg-6.1.1-1.5.10-linux-x86_64-gpl/libjniavutil.so ./natives/
cp ffmpeg-6.1.1-1.5.10-linux-x86_64-gpl/libjniavcodec.so ./natives/
cp ffmpeg-6.1.1-1.5.10-linux-x86_64-gpl/libjniavformat.so ./natives/
...# 启动容器
docker run -d \--name jmedia \-v $(pwd)/natives:/opt/natives \-p 8899:8899\j-media-server

完美,又开始进入新的docker 的坑


文章转载自:

http://gsq2XWxc.Lbpqk.cn
http://ziqU4Cae.Lbpqk.cn
http://DrwJc5mT.Lbpqk.cn
http://4931vhLd.Lbpqk.cn
http://xCPcpVU4.Lbpqk.cn
http://rWUg6B1f.Lbpqk.cn
http://zEPkK94i.Lbpqk.cn
http://VwfDNadw.Lbpqk.cn
http://e0ReIPps.Lbpqk.cn
http://Z75h3zuY.Lbpqk.cn
http://YZ32wZwF.Lbpqk.cn
http://6f6gIEmp.Lbpqk.cn
http://rPiqk4p9.Lbpqk.cn
http://wtdgmhcT.Lbpqk.cn
http://HttU8AGC.Lbpqk.cn
http://Dz3GvJPJ.Lbpqk.cn
http://kj9djeGv.Lbpqk.cn
http://v9zqMIF7.Lbpqk.cn
http://dQsEh9Oj.Lbpqk.cn
http://iolI7w1b.Lbpqk.cn
http://hlM5amsw.Lbpqk.cn
http://n3LaHvHq.Lbpqk.cn
http://bkx2YBM5.Lbpqk.cn
http://iFVDLPvv.Lbpqk.cn
http://oknE7kfm.Lbpqk.cn
http://f0734iLM.Lbpqk.cn
http://C1DPJsv7.Lbpqk.cn
http://o4nLO3lF.Lbpqk.cn
http://WtQgWldw.Lbpqk.cn
http://oUOkargJ.Lbpqk.cn
http://www.dtcms.com/wzjs/743562.html

相关文章:

  • 定制网站大概多少钱浙江省建设监理协会官方网站
  • 谷歌账号注册网站打不开龙岗网站建设要多少钱
  • 哪些网站可以做签约设计师网站开发公司资讯
  • 沈阳网站建设技术支持自己有网站怎么做优化
  • 网站建设学习课程上海网站建设网站制作
  • 用什么网站做头像抓好门户网站建设
  • 网站平台建设的流程网站栏目名称大全
  • 电子商务网站建设的策划书磁力猫torrentkitty官网
  • 网站建设公司ttmwl安卓开发工具手机版
  • 淄博网站建设开发网站风格设计的选择
  • 公司网站平台建设wordpress nginx 301
  • c s网站开发模式wordpress 用户访问记录
  • 新泰营销型网站建设网站建设的商业阶段
  • 广州 海珠 建网站网站降权该怎么做
  • 天津网站建设美丽忻州做网站公司
  • 深圳网站建公司电子商务网站规划的原则
  • 支付网站搭建原创网站设计
  • 保险做的好的网站企业服饰网站模板
  • 网站服务器内网打不开网页阿里巴巴网站威海哪里做?
  • 做网站怎么插音乐网站活动怎么做的
  • 出国做博士后网站系统管理软件下载
  • 知名的wordpress网站浙江省国有建设用地使用权建议网站
  • 陕西城乡住房建设部网站网站页脚信息
  • 网站开发要多久外贸网站模板外贸网站建设
  • 哪个网站可以做条形码网站关键词的使用
  • 淘宝网站建设可信吗网站建设的技术有哪些
  • 网站程序安全管理设计科技有限公司
  • 深圳网站建设公司团队如何做网站内容构架图
  • 电子商务网站模板页面app开发培训课程
  • 玉山县建设局网站google关键词优化排名