java - 即使在 Java 中加载属性文件后,getProperty 也会返回 null
问题描述
下面的代码有什么问题。一切似乎都是正确的,执行时没有例外。我已经双重验证了测试属性值在 config.properties 文件中。
@BeforeClass
public void propertyLoading() {
System.out.println("in beforeclass");
prop = new Properties();
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
try {
System.out.println("path : "+classLoader.getResource("config.properties").getFile().toString());
input = new FileInputStream(new File(classLoader.getResource("config.properties").getFile()));
prop.load(input);
}
catch (Exception e) {
e.printStackTrace();
}
try {
if (input != null)
input.close();
}
catch (IOException e) {
e.printStackTrace();
}
System.out.println("test : "+System.getProperty("test"));
}
config.properties 文件内容如下;
test=aaaa
解决方案
因为您使用的是系统属性,所以这与您尝试使用的运行时属性不同
System.getProperty
虽然您应该调用您在上面创建的几行的 Properties 对象
prop.getProperty("test")
推荐阅读
- mysql - mysql。如何将长数据发送到mysql-server?
- excel - 查找一个字符串并列出其对应的值
- javascript - Javascript:分页
- azure-devops - 是否可以使用 Azure DevOps 复制具有例外规则的文件?
- android - 基于按钮单击将不同的数据重新填充到 RecyclerView
- typescript - 配置 Typescript 编译器
- java - 你如何在 android studio 中的 Fragment 上编码
- html - 网页上托管的目录的url被点击时,默认模板是如何创建的?
- laravel - 动态自定义字段:JSON、Pivot、morphToMany?
- powershell - How to execute .exe tool with argument using Powershell script?