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

Java Owner库@Config.Sources中${user.dir}无法定位配置文件问题

问题原因

Owner库的@Config.Sources注解默认不会自动解析${user.dir}这类系统属性占位符——它会把这个字符串直接当作文件路径的一部分去查找,而不是替换为实际的用户工作目录,因此找不到目标属性文件。

解决方法

方法1:使用Owner专属的系统属性占位符语法

Owner支持通过${sys:属性名}的格式明确指定解析系统属性,修改注解如下:

@Config.Sources(value = "${sys:user.dir}/src/test/resources/FrameworkConfig.properties")
public interface FrameworkConfig extends Config {
    // 你的配置方法
}

方法2:创建Config实例时启用变量扩展

如果更习惯使用${user.dir}的原生写法,可以在通过ConfigFactory创建配置实例时,调用enableVariableExpansion()开启占位符解析:

FrameworkConfig config = ConfigFactory.create(FrameworkConfig.class)
    .enableVariableExpansion();

额外验证步骤

  • 先打印System.getProperty("user.dir")确认当前工作目录是否为Maven项目根目录(pom.xml所在路径);
  • 检查拼接后的完整路径是否与属性文件的实际路径一致,避免因目录结构差异导致找不到文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:57:19