以下代码有什么问题。一切似乎都是正确的,执行时没有例外。我已经双重验证了config.properties文件中的test属性值。
@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
答案 0 :(得分:3)
因为您使用的是系统属性,所以这与您尝试使用的运行时属性不同
System.getProperty
虽然你应该调用你在上面创建几行的Properties对象
prop.getProperty("test")
答案 1 :(得分:1)
如果要从System.getProperty()调用
中读取属性System.setProperties(prop);
从文件
中读取属性后(在场外,尽可能使用资源尝试https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)