SpringBoot导入部分第三方库失败问题,可能是因为这个

直接揭晓答案

删除掉maven中spring-boot-devtools依赖

背景

当时有个项目,在Java中直接做图像识别(为什么不用python直接做啊啊啊)。

首先我在普通Java项目 里面做实验,等成功后再照搬进springboot 里。我跟着教程将opencv库的jar包和dll手动导进Java库里(不是文章重点就不细谈了,网上很多大佬都有教程),导成功就开始敲代码了......最后终于成功识别,心想着终于干完啦,可以不用再对着这东西了!(途中遇到很多让人啼笑皆非的东西,例如把香蕉识别成大蒜。 ・ࡇ・)

问题出现!!!

按照之前的方式导入,代码适配,写好接口,用postman测试,报错了......

UnsatisfiedLinkError异常 : unsatisfiedlinkerror报错是Java程序中的一种错误,通常是由于无法找到或加载本地库文件而引起的。这种错误通常会在调用本地方法时发生,因为Java虚拟机无法找到所需的本地库文件

怎么会有这么奇怪的错误,这是连opencv都没有导进来。之后我加入了下面这段代码检测,结果是load success,能识别到文件存在呀,怎么回事。

抱怨了好一会儿,终于冷静下来,开始一步步纠错。

  • 为什么之前的导入方式 可以正常运行,到了现在这里 就不行了呢,是导入opencv库的方式不对吗,接着就开始十八般武艺花式导入,不行**✘**
  • 难道是库识别 问题,我额外给maven加了一段本地opencv库的依赖,不行**✘**
  • 之前是普通Java项目 ,现在变为了springboot,难道里面有什么变化导致这个结果?这回运气比较好,我先把问题定位在maven上,减少了不少试错。我注释掉一些不常见的依赖,看看是不是有什么东西跟opencv冲突了,功夫不负有心人,我找出了问题所在,把spring-boot-devtools注释掉后,跑成功了✔。 ✧(≖ ◡ ≖✿)

事后总结

spring-boot-devtools是干嘛用的,感觉也没用过他呀。一通翻找文档和gpt后,终于窥探其中一二了。 DevTools是一个开发工具,旨在提高Spring Boot应用程序的开发体验和效率。它提供了一系列功能和特性,有助于开发人员在开发过程中进行快速迭代和调试。

markdown 复制代码
  *自动应用程序重启*:DevTools可以监测代码的变化,并自动重新启动应用程序,以便快速查看修改后的效果。这样,开发人员无需手动重启应用程序,提高了开发效率。
  *热部署*:DevTools支持在运行时替换应用程序的类文件,而无需重新启动整个应用程序。这意味着开发人员可以在不中断应用程序运行的情况下修改和调试代码。热部署功能可以加快开发周期,减少重新构建和部署的时间。
  *全局设置*:DevTools允许在开发环境中进行全局配置,以便快速启用或禁用某些功能。例如,可以配置自动重启的延迟时间、禁用特定的自动配置等。
  *开发者工具页面*:DevTools提供了一个开发者工具页面,可以通过浏览器访问。该页面显示了应用程序的详细信息,包括配置属性、Bean定义、请求映射等,方便开发人员进行调试和查看应用程序状态。

而问题则是出在类加载冲突 上,DevTools使用了自定义的类加载器,可以在应用程序运行时加载修改后的类。然而,这种类加载机制可能会与某些特定的类库或插件产生冲突,导致意料之外的行为或错误。

问题终于解决,舒畅。

--普通大二生一枚,文章若有错误,欢迎各位大佬指正,虚心学习(*>.<*)

相关推荐
Yvemil71 小时前
MQ 架构设计原理与消息中间件详解(二)
开发语言·后端·ruby
2401_854391081 小时前
Spring Boot大学生就业招聘系统的开发与部署
java·spring boot·后端
虽千万人 吾往矣1 小时前
golang gorm
开发语言·数据库·后端·tcp/ip·golang
这孩子叫逆2 小时前
Spring Boot项目的创建与使用
java·spring boot·后端
coderWangbuer3 小时前
基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
spring boot·后端·sql
攸攸太上3 小时前
JMeter学习
java·后端·学习·jmeter·微服务
Kenny.志3 小时前
2、Spring Boot 3.x 集成 Feign
java·spring boot·后端
sky丶Mamba4 小时前
Spring Boot中获取application.yml中属性的几种方式
java·spring boot·后端
千里码aicood5 小时前
【2025】springboot教学评价管理系统(源码+文档+调试+答疑)
java·spring boot·后端·教学管理系统
程序员-珍5 小时前
使用openapi生成前端请求文件报错 ‘Token “Integer“ does not exist.‘
java·前端·spring boot·后端·restful·个人开发