问题:java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path

一、问题

今天的程序在一台新电脑上运行,出现java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path异常,

具体报错日志:

Exception in thread "Thread-12" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1191)
at org.bytedeco.javacpp.Loader.load(Loader.java:953)
at org.bytedeco.javacpp.Loader.load(Loader.java:854)
at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.bytedeco.javacpp.Loader.load(Loader.java:913)
at org.bytedeco.javacpp.Loader.load(Loader.java:854)
at org.bytedeco.javacpp.opencv_imgcodecs.<clinit>(opencv_imgcodecs.java:13)
at com.utils.MatchTemplateUtil.getPicMaxSimValue(MatchTemplateUtil.java:146)
at com.utils.ExcuteUtil.getScrrenshotAndCompare(ExcuteUtil.java:3251)
at com.utils.ExcuteUtil.adbComparePicsJavacv(ExcuteUtil.java:1595)
at com.utils.ExcuteUtil.excuteSingleStep(ExcuteUtil.java:163)
at com.main.widget.ToolsView$4$2$1.run(ToolsView.java:1203)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\test\.javacpp\cache\opencv-windows-x86_64.jar\org\bytedeco\javacpp\windows-x86_64\jniopencv_core.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1171)
... 14 more
Exception in thread "Thread-41" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.opencv_imgcodecs
at com.utils.MatchTemplateUtil.getPicMaxSimValue(MatchTemplateUtil.java:146)
at com.utils.ExcuteUtil.getScrrenshotAndCompare(ExcuteUtil.java:3251)
at com.utils.ExcuteUtil.adbComparePicsJavacv(ExcuteUtil.java:1595)
at com.utils.ExcuteUtil.excuteSteps(ExcuteUtil.java:405)
at com.main.widget.ToolsView$excuteCaseThread.run(ToolsView.java:4975)

二、分析解决

从日志看,报错的是opencv相关的依赖,这个问题,在旧电脑上是没有出现的,到新电脑才出现,说明应该是环境差异引起的问题,依赖的jar和相关库都打包在程序里了。

查了一下网上的解决方案,都是程序里面库冲突或者缺少库,但是我这里再旧电脑上运行没有问题,所以有点头疼。

然后查看了下新电脑已安装的软件和旧电脑安装软件的区别,发现旧电脑有很多c++的库,但是新电脑因为刚安装的纯净版,什么软件都没装,很干净,下面是旧电脑多安装的c++相关库:
在这里插入图片描述

怀疑是没有安装c++相关环境引起的

搜索:microsoft visual c++

在这里插入图片描述

下载:
在这里插入图片描述

直达链接:VC_redist.x64.exe

安装完后,重新运行软件,问题解决。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值