1. 程式人生 > >使用System.getProperty方法,如何配置JVM系統屬性 (轉載)

使用System.getProperty方法,如何配置JVM系統屬性 (轉載)

property 如果 cli close 優先級 file lin 很多 src

  很多時候需要在項目中讀取外部屬性文件,用到了System.getProperty("")方法。這個方法需要配置JVM系統屬性,那麽如何配置呢?

  那就是使用java -D 配置系統屬性
  使用格式是:java -Dkey=value

  比如新建一個測試類,如下:

public class Test {
    public static void main(String[] args){
       System.out.println(System.getProperty("configurePath"));
    }
}

  這段代碼直接執行的話,會輸出null。

接下來需要配置

configurePath屬性了,有兩種方法:
  第一種方法在啟動應用程序的時候配置
    比如在eclipse中,選中這個項目,然後在工具欄中選擇"Run-->Run Confgurations“,然後在對話框的右邊選擇"Arguments“,然後在VM arguments中輸入-DconfigurePath=hello。如下圖:

技術分享圖片

  然後就會在控制臺輸出:hello

補充說明:

  上圖中program arguments中輸入的參數是應用程序String[] args數組值。

  第二種方法在執行java命令的時候配置
    將之前的測試類導出為一個jar包,再控制臺使用命令執行:java -DconfigurePath=hello -jar Test.jar,

也會得到hello。

技術分享圖片

其他java -D 配置系統屬性說明
(1)使用案例
  在使用-D的參數項,比如用下面參數來配置文件編碼:
    -Dfile.encoding=UTF-8

再比如,用以下參數來配置dubbo的選項:
  java -Ddubbo.reference.com.foo.BarService.check=false
  java -Ddubbo.reference.check=false
  java -Ddubbo.consumer.check=false
  java -Ddubbo.registry.check=false
(2)功能解析
  -D=value
  官網解釋:
  Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes:
  在虛擬機的系統屬性中設置屬性名

/值對,運行在此虛擬機上的應用程序可用:System.getProperty("屬性名"),得到value的值。
  如果value中有空格,則需要用雙引號將該值括起來,如:-Dname=”kazaf f”。
  該參數通常用於設置系統級全局變量值,如配置文件路徑,保證該屬性在程序中任何地方都可訪問。
註意事項
1)需要設置的是JVM參數而不是program參數;
2)使用此參數的參數優先級最高,會覆蓋項目中配置的此項;

https://www.cnblogs.com/acm-bingzi/p/6673823.html

使用System.getProperty方法,如何配置JVM系統屬性 (轉載)