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

镇江百度网站关键词优化的建议

镇江百度网站,关键词优化的建议,wordpress排版教程,西安网站建设优化与推广在 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://www.dtcms.com/wzjs/301519.html

相关文章:

  • 做upc条形码的网站百度文库官网
  • 深圳服务网站建设列表网推广效果怎么样
  • 国外设计网站导航深圳网络推广公司哪家好
  • 网站前台后台打开慢谷歌商店paypal官网下载
  • 开发者模式是干什么的搜索引擎优化服务公司哪家好
  • 没有网站想做个链接页面怎么做个人主页网页设计模板
  • 青岛企业网站制作百度精准获客平台
  • 格尔木有做网站的吗百度店铺
  • 有平面广告设计的网站百度识图网页版
  • 在线做数据图的网站有哪些问题谷歌推广效果好吗
  • 进入网站前如何做环境检测域名注册流程
  • 辽宁工程建设信息网站百度竞价推广开户联系方式
  • sns社交网站 有哪些中央刚刚宣布大消息
  • wordpress主题目录在哪里seo流量排名软件
  • 模板网站建设明细报价表百度热搜关键词
  • 做爰网站苏州网站建设开发公司
  • 网站三d图怎么做怎么快速推广自己的产品
  • 成都做网站公司买卖友链
  • 行业协会网站建设视频广告联盟平台
  • 宝山网站建设公司新闻头条最新
  • 网站制作与网页设计拉新人拿奖励的app
  • 太原网站改版互联网营销方案策划
  • 织梦做中英文企业网站公司网站域名怎么注册
  • 工作室网站源码php国外网页模板
  • 商业网站备案流程广告宣传
  • 网站规划的解释推广软件
  • 做网站最主要是什么自己做网站需要多少钱
  • 一般一个网站从建设到运营要多久网站之家查询
  • 学校期末评语网站开发网店推广方式
  • 佛山网站建设网络公司深圳做网站的