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

Java 獲取系統環境參數的完整指南

     編輯:Java 相關知識

在 Java 應用開發中,經常需要獲取 JVM、作業系統、類路徑等運行環境資訊。Java 提供了 System.getProperties() 方法,可一次性取得所有系統屬性。本文彙整常用屬性鍵值並提供完整代碼示例,方便快速查閱。

核心 API

java.lang.System.getProperties() 返回一個 Properties 物件,繼承自 Hashtable,包含所有系統屬性鍵值對。

常用系統屬性分類表

Java 執行環境資訊

屬性鍵說明
java.versionJava 運行環境版本
java.vendorJava 運行環境供應商
java.vendor.urlJava 供應商 URL
java.homeJava 安裝路徑
java.class.versionJava 類格式版本號
java.class.pathJava 類路徑
java.library.path加載庫時搜索的路徑列表

JVM 虛擬機資訊

屬性鍵說明
java.vm.specification.versionJVM 規範版本
java.vm.specification.vendorJVM 規範供應商
java.vm.specification.nameJVM 規範名稱
java.vm.versionJVM 實現版本
java.vm.vendorJVM 實現供應商
java.vm.nameJVM 實現名稱

作業系統與路徑分隔符

屬性鍵說明典型值
os.name作業系統名稱Windows 10, Linux, Mac OS X
os.arch作業系統架構x86, amd64, arm64
os.version作業系統版本10.0, 5.15.0
file.separator文件分隔符Windows: \, Unix: /
path.separator路徑分隔符Windows: ;, Unix: :
line.separator行分隔符Windows: \r\n, Unix: \n

用戶環境資訊

屬性鍵說明
user.name用戶賬戶名稱
user.home用戶主目錄
user.dir用戶當前工作目錄

完整代碼示例

import java.util.Properties;

public class SystemPropsDemo {
    public static void main(String[] args) {
        Properties props = System.getProperties();
        
        // Java 執行環境
        System.out.println("Java 版本: " + props.getProperty("java.version"));
        System.out.println("Java 廠商: " + props.getProperty("java.vendor"));
        System.out.println("Java 安裝路徑: " + props.getProperty("java.home"));
        System.out.println("類路徑: " + props.getProperty("java.class.path"));
        System.out.println("庫搜索路徑: " + props.getProperty("java.library.path"));
        System.out.println("臨時文件目錄: " + props.getProperty("java.io.tmpdir"));
        System.out.println("擴展目錄: " + props.getProperty("java.ext.dirs"));
        
        // 作業系統
        System.out.println("OS 名稱: " + props.getProperty("os.name"));
        System.out.println("OS 架構: " + props.getProperty("os.arch"));
        System.out.println("OS 版本: " + props.getProperty("os.version"));
        System.out.println("文件分隔符: " + props.getProperty("file.separator"));
        System.out.println("路徑分隔符: " + props.getProperty("path.separator"));
        System.out.println("行分隔符: " + props.getProperty("line.separator"));
        
        // 用戶環境
        System.out.println("用戶名: " + props.getProperty("user.name"));
        System.out.println("用戶主目錄: " + props.getProperty("user.home"));
        System.out.println("工作目錄: " + props.getProperty("user.dir"));
        
        // 列印所有屬性(調試用)
        // props.list(System.out);
    }
}

最佳實踐建議

  • 跨平台路徑處理:使用 File.separator、File.pathSeparator 而非硬編碼分隔符
  • 臨時文件:優先使用 java.io.tmpdir 獲取臨時目錄,避免權限問題
  • 條件編譯邏輯:根據 os.name 判斷平台,執行平台特定代碼
  • 安全考量:部分屬性(如 user.home)可能涉及隱私,日誌記錄時需脫敏

補充:獲取單個屬性

若只需特定屬性,可直接使用 System.getProperty("key"),比獲取完整 Properties 更高效:

String javaVersion = System.getProperty("java.version");
String osName = System.getProperty("os.name");

掌握系統屬性的獲取與應用,能讓你的 Java 應用更好地適應不同運行環境,提升可移植性與健壯性。

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