You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.5.3无法识别外置config目录下的application.properties问题求助

问题根因与解决方案

1 最核心问题排查

首先检查你的项目配置类/启动类上是否添加了@PropertySource("classpath:application.properties")注解:
该注解默认会强制校验classpath下必须存在对应配置文件,你将application.properties放在jar外部的config目录,classpath根目录下没有该文件,所以无论怎么指定外部配置路径,都会触发找不到classpath资源的报错。

修复方案:

  • 如无特殊需要,直接删除这个注解即可,Spring Boot默认会自动加载各优先级位置的application.properties,包括jar同级config目录下的配置
  • 如果需要保留多路径配置兼容,修改注解为:
@PropertySource(value = {"classpath:application.properties", "file:./config/application.properties"}, ignoreResourceNotFound = true)

添加ignoreResourceNotFound = true属性,允许找不到对应资源时不抛出异常。

2 build.gradle配置问题

你配置的processResources{ exclude '*/*' }会将src/main/resources目录下的所有资源文件排除,不会打进jar包中:

  • 如果你是故意不把配置文件打进jar,完全依赖外部配置,该配置无需修改
  • 如果你需要保留默认配置作为兜底,删除该exclude规则即可

3 启动命令的规范问题

你之前尝试的多条命令存在参数位置错误的问题:

  • 所有-D开头的JVM参数必须放在-jar xxx.jar之前,放在-jar之后的参数只会传给应用本身,JVM不会识别
  • --spring.config.location是Spring Boot的应用参数,必须放在-jar xxx.jar之后,你尝试5的写法把该参数放在JVM参数位置,所以会报无法识别选项的错误

可用启动命令示例

确认application.properties放在jar同级的config目录下,直接用以下命令启动即可:

java -jar drc-reports-generator.jar --spring.config.location=file:./config/application.properties

如果需要用JVM参数的写法,用下面的命令也可以:

java -Dspring.config.location=file:./config/application.properties -jar drc-reports-generator.jar

内容的提问来源于stack exchange,提问作者Sheljith krishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:09:01