首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 取得執行期系統屬性與參數的三種寫法

     編輯:Java 相關知識

需求場景

除錯、效能調優、環境檢查時,常需查看 JVM 啟動參數、系統屬性(-Dkey=value)、環境變數等。本文提供三種不同詳細度的實作供選擇。

版本一:完整迭代版(適合逐行處理/過濾)

package systeminfo;

import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Properties;

public class SysInfo {
    public static void main(String[] args) {
        Properties props = System.getProperties();
        Iterator> it = props.entrySet().iterator();
        while (it.hasNext()) {
            Entry entry = it.next();
            System.out.println(entry.getKey() + " = " + entry.getValue());
        }
    }
}

優點:可自訂輸出格式、過濾敏感鍵值、寫入日誌檔。

版本二:一行列印版(快速查看全貌)

package systeminfo;

public class SysInfoSimple {
    public static void main(String[] args) {
        System.out.println(System.getProperties());
    }
}

輸出為單行 {key1=value1, key2=value2, ...},適合終端機快速掃視。

版本三:字串分割版(每行一組鍵值對)

package systeminfo;

public class SysInfoSplit {
    public static void main(String[] args) {
        String all = System.getProperties().toString(); // {k1=v1, k2=v2}
        String[] pairs = all.substring(1, all.length()-1).split(", ");
        for (String p : pairs) System.out.println(p);
    }
}

將 Properties.toString() 產生的字串去除大括號後以 , 分割,每行顯示一組。

常見關鍵屬性速查

屬性鍵含義
java.versionJRE 版本
java.homeJRE 安裝目錄
os.name / os.arch作業系統名稱 / 架構
user.dir程式工作目錄
file.encoding預設檔案編碼
sun.java.command完整啟動指令(含 main 類與參數)

進階:取得 JVM 非標準參數 (-XX:...)

import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;

OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
// osBean.getVmArgs() 需 JDK 9+ 且啟用 -XX:+UnlockDiagnosticVMOptions

三種寫法各有適用場景,建議專案內建一個 SysInfo 工具類,上線前可快速驗證部署環境參數是否符合預期。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved