此文純屬個人理解,並未深入瞭解,看官慎重。
java -D是設置運行是的虛擬機屬性。怎樣在代碼中獲得?
使用System.getProperty()方法獲得,直接放一個例子,直觀點:
Test.java :
public class Test {
public static void main(String[] args) {
System.out.println("Hello World");
System.out.println(System.getProperty("com.test"));
}
}
在命令行編譯(略)
在命令行執行:
java -Dcom.test=haha Test
結果:
Hello World
haha
在命令行執行:
java -Dlala=haha Test
或
java Test
結果:
Hello World
null
在命令行執行:
java Test -Dcom.test=haha
結果:
Hello World
null
由此可見System.getProperty()方法完全可以獲得運行時-D設置的環境變量,或者說是系統屬性(非設置的應該也一樣),但是名字要正確,並且-D應在類之前,否則獲取不到屬性值。以null填充。
聲明:鑑於本人只是有限,歡迎指正![email protected]。