簡體   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