iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Software Development

Java入門的30張門票系列 第 28

[Day28] Java的系統屬性

  • 分享至 

  • xImage
  •  

系統屬性(System Properties)可以顯示系統的環境資訊。每個Java系統屬性都是一對一對的鍵值(String-String),像是"java.vm.version" = "17.0.2+8"。如果想要知道所有的系統屬性,可以使用下面三個方法。

public static Properties getProperties():

可以取得所有的系統屬性,再傳回Properties類別的物件。由於這個類別是Hashtable的子類別,所以可以透過Enumeration物件來存取所有的屬性。

public static String getProperty(String key):

會傳回特定系統屬性名稱的值。

public static String setProperty(String key, String value):

設定特定的系統屬性,不過如果你想要設定系統屬性,也可以在程式執行時設定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

上一篇
[Day27] 現在到底幾點幾分 - java.util.Date 類別
下一篇
[Day29] 內部類別 inner class
系列文
Java入門的30張門票30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言