系統屬性(System Properties)可以顯示系統的環境資訊。每個Java系統屬性都是一對一對的鍵值(String-String),像是"java.vm.version" = "17.0.2+8"
。如果想要知道所有的系統屬性,可以使用下面三個方法。
可以取得所有的系統屬性,再傳回Properties類別的物件。由於這個類別是Hashtable的子類別,所以可以透過Enumeration物件來存取所有的屬性。
會傳回特定系統屬性名稱的值。
設定特定的系統屬性,不過如果你想要設定系統屬性,也可以在程式執行時設定java -DmyProperty=myValue HelloWorld
。
下面是求出系統屬性的範例!
Properties props = System.getProperties();
Enumeration names = props.propertyNames();
while(names.hasMoreElements()) {
String name = (String)names.nextElement();
String val = props.getProperty(name);
System.out.println("property of " + name + " = " + val);
}
輸出結果的一小部分。
perty of java.runtime.name = OpenJDK Runtime Environment
property of java.vm.version = 17.0.2+8
property of sun.boot.library.path = /Users/yangchengni/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.macosx.x86_64_17.0.2.v20220201-1208/jre/lib
property of java.vm.vendor = Eclipse Adoptium
property of java.vendor.url = https://adoptium.net/
或是有更簡潔的寫法,一樣可以得到系統的所有屬性。
// 取出所有系統屬性
Properties p = System.getProperties();
// 列出所有屬性內容(Key/Value)
p.list(System.out);
一樣給你們看輸出的一小部分,不過它跟上面的輸出順序就不太一樣ㄌ。
-- listing properties --
java.specification.version=17
sun.jnu.encoding=UTF-8
java.class.path=/Users/yangchengni/eclipse-workspace/...
java.vm.vendor=Eclipse Adoptium
sun.arch.data.model=64