天天看點

System.getProperty() 引發的探索

System.getProperty 引發的探索

    • System.getProperty() 引發的探索
      • 1、系統環境變量和使用者環境變量
      • 2、System.getProperty()
      • 3、System.getenv()

System.getProperty() 引發的探索

1、系統環境變量和使用者環境變量

  • 系統環境變量:所有使用者都生效。切換使用者,系統變量都是可以使用的。
  • 使用者環境變量:計算機可以添加好幾個使用者,隻有選中目前使用者時才可以使用相應的程式。每個使用者都要彈出設定自己的使用者變量,各使用者之間互相獨立。

2、System.getProperty()

System.getProperty() 是擷取系統的相關屬性,包括檔案編碼、作業系統名稱、區域、使用者名等,此屬性一般是由 JVM 自動擷取,不能設定。這個必須接收一個 String 類型的參數,并且傳回一個 String 類型的值。如果想要擷取所有的系統的相關屬性值可以使用 System.getProperties() 方法。

測試代碼:

java.runtime.name: Java 運作時環境名稱
sun.boot.library.path: D:\java\jdk\jre\bin
java.vm.version: Java 虛拟機實作版本
java.vm.vendor: Java 虛拟機實作供應商 
java.vendor.url: http://java.oracle.com/
path.separator: 路徑分隔符(在 UNIX 系統中是“:” ,windows 系統中是“;”)
java.vm.name: Java 虛拟機實作名稱
file.encoding.pkg: sun.io
user.country: CN
user.script: 
sun.java.launcher: SUN_STANDARD
sun.os.patch.level: 
java.vm.specification.name: Java Virtual Machine Specification
user.dir: E:\ChormeDownload\項目\demo\demo
java.runtime.version: 1.8.0_172-b11
java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs: D:\java\jdk\jre\lib\endorsed
os.arch: amd64
java.io.tmpdir: C:\Users\liz\AppData\Local\Temp\
line.separator: 
           

3、System.getenv()

擷取指定環境變量的值。環境變量是與系統有關的外部命名值。有兩個構造方法:

  • 有參數的。String getenv(String name),根據傳入的 name 值擷取相應的環境變量(String)
public static String getenv(String name) {
    SecurityManager sm = getSecurityManager();
    if (sm != null) {
        sm.checkPermission(new RuntimePermission("getenv." + name));
    }

    return ProcessEnvironment.getenv(name);
}
           
  • 無參數的。Map<String,String> getenv(),傳回的是所有的環境變量值(Map)
public static java.util.Map<String,String> getenv() {
    SecurityManager sm = getSecurityManager();
    if (sm != null) {
        sm.checkPermission(new RuntimePermission("getenv.*"));
    }

    return ProcessEnvironment.getenv();
}