繁体   English   中英

如何从运行时设置Java jvm属性

[英]How do I set java jvm properties from run time

我尝试了以下代码,但是java仍然说它找不到值。 仅当我在运行代码之前在JVM中设置它们时,它才有效。 我只想使用属性文件加载它们。 在我的情况下,正在加载文件,而未填充Java属性。

Properties prop = new Properties();
    InputStream in = MyClass.class.getResourceAsStream("/vars.options");
    prop.load(in);
    in.close();
    System.setProperties(prop);

您的代码未将properties对象设置为系统属性。

您不见了:

System.setProperties(prop);

注意

确保使用try / catch / finally语句,并在finally块中关闭流。

另外,您可以使用Java 7的“ try-with-resources”习惯用法,因为InputStreamAutoCloseable

示例(Java 7样式)

try (InputStream in = Main.class.getResourceAsStream("/vars.options")){
    Properties prop = new Properties();
    prop.load(in);
    System.setProperties(prop);
}
catch (IOException ioe) {
    // TODO handle
}
System.out.println(System.getProperty("my.key"));

如果在src根文件夹中,则vars.options文件包含:

my.key=foo

...

这将打印:

foo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM