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();
}