Spring Boot 启动报错:Unable to instantiate factory class: org.springframework.boot.env.EnvironmentPos...

现象

昨天还运行的好好的 Spring Boot,今天运行报错了,报错信息:java.lang.IllegalArgumentException: Unable to instantiate factory class: org.springframework.boot.env.EnvironmentPostProcessor

解决

对于错误堆栈信息一脸懵,只能 maven clean、maven 刷新,检查 pom 文件,启动还是报错;

百度没查到原因,谷歌了下,stackoverflow 上有一个类似的问题:java.lang.IllegalArgumentException: Unable to instantiate factory class: org.springframework.boot.env.EnvironmentPostProcessor

后来提问者自己解决了问题,是 jdk/jre/lib、.m2/repository 下都有 Spring 的 jar 包,并且都在运行的 classpath 路径下,删除旧的 jar 包就行了。

查看 idea 运行的 classpath,发现有重复的 Spring 的 jar 包,而且版本不一样,想起这几天做过一次版本升级,应该是这个问题。

于是在 idea 中打开项目结构,删除了 jdk 之外的所有的包,然后 maven 刷新重新导入,就 ok 了。

在这里插入图片描述

总结

在做版本更换时,一定要删除旧的 jar 包,并且检查类路径下是否有重复 jar 包

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容