System.getProperty()獲取系統的配置信息



1. 通過System.getProperty()可以獲取系統的配置信息,System.getProperty()的參數總結:

java.version Java運行時環境版本
java.vendor Java運行時環境供應商
java.vendor.url  Java供應商的 URL
java.home  Java安裝目錄
java.vm.specification.version  Java虛擬機規范版本
java.vm.specification.vendor  Java虛擬機規范供應商
java.vm.specification.name  Java虛擬機規范名稱
java.vm.version  Java虛擬機實現版本
java.vm.vendor  Java虛擬機實現供應商
java.vm.name  Java虛擬機實現名稱
java.specification.version  Java運行時環境規范版本
java.specification.vendor  Java運行時環境規范供應商
java.specification.name  Java運行時環境規范名稱
java.class.version  Java類格式版本號
java.class.path  Java類路徑
java.library.path  加載庫時搜索的路徑列表
java.io.tmpdir 默認的臨時文件路徑
java.compiler 要使用的 JIT 編譯器的名稱
java.ext.dirs  一個或多個擴展目錄的路徑
os.name  操作系統的名稱
os.arch  操作系統的架構
os.version  操作系統的版本
file.separator  文件分隔符(在 UNIX 系統中是“/”)
path.separator 路徑分隔符(在 UNIX 系統中是“:”)
line.separator  行分隔符(在 UNIX 系統中是“/n”)
user.name  用戶的賬戶名稱
user.home  用戶的主目錄
user.dir  用戶的當前工作目錄

 

2. 示例:

復制代碼
public class SystemPropertyTest {

    public static void main(String[] args) {

        String[] keys = { "java.version", "java.vendor", "java.vendor.url", "java.home",
                "java.vm.specification.version", "java.vm.specification.vendor", "java.vm.specification.name",
                "java.vm.version", "java.vm.vendor", "java.vm.name", "java.specification.version",
                "java.specification.vendor", "java.specification.name", "java.class.version", "java.class.path",
                "java.library.path", "java.io.tmpdir", "java.compiler", "java.ext.dirs", "os.name", "os.arch",
                "os.version", "file.separator", "path.separator", "line.separator", "user.name", "user.home",
                "user.dir" };

        for (String key : keys) {
            String value = System.getProperty(key);
            System.out.println(key + " : " + value);
        }
    }
}
復制代碼

打印結果:

復制代碼
java.version : 1.8.0_121
java.vendor : Oracle Corporation
java.vendor.url : http://java.oracle.com/
java.home : C:\Program Files (x86)\Java\jdk1.8.0_121\jre
java.vm.specification.version : 1.8
java.vm.specification.vendor : Oracle Corporation
java.vm.specification.name : Java Virtual Machine Specification
java.vm.version : 25.121-b13
java.vm.vendor : Oracle Corporation
java.vm.name : Java HotSpot(TM) Client VM
java.specification.version : 1.8
java.specification.vendor : Oracle Corporation
java.specification.name : Java Platform API Specification
java.class.version : 52.0

java.class.path : E:\workspace\TestCode\build\classes;E:\eclipse\plugins\org.junit_4.11.0.v201303080030\junit.jar;E:\eclipse\plugins\org.hamcrest.core_1.3.0.v201303031735.jar
java.library.path : C:\Program Files (x86)\Java\jdk1.8.0_121\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files (x86)/Java/jre1.8.0_121/bin/client;C:/Program Files (x86)/Java/jre1.8.0_121/bin;C:/Program Files (x86)/Java/jre1.8.0_121/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo Fingerprint Reader\;C:\Program Files\Lenovo Fingerprint Reader\x86\;C:\Program Files (x86)\Java\jdk1.8.0_121\bin;C:\Program Files (x86)\Java\jdk1.8.0_121\jre\bin;E:\TortoiseSVN\bin;E:\mysql-5.6.24-winx64\bin;E:\apache-maven-3.3.3\bin;C:\Program Files\*** ***;.;;E:\eclipse;;.;;.
java.io.tmpdir : C:\Users\***~1.***\AppData\Local\Temp\ java.compiler : null java.ext.dirs : C:\Program Files (x86)\Java\jdk1.8.0_121\jre\lib\ext;C:\windows\Sun\Java\lib\ext os.name : Windows 7 os.arch : x86 os.version : 6.1 file.separator : \ path.separator : ; line.separator : user.name : ***.*** user.home : C:\Users\***.*** user.dir : E:\workspace\TestCode
復制代碼

 

 

我們可以通過 System.getProperty("user.home") 讀取JAVA系統的user.home 屬性的值。


System.getProperty("user.home") 方法先去讀取注冊表中HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders下的 Desktop 鍵值做為 user.dir ,再取它的上一級目錄做為user.home


打開注冊表編輯器,定位到上面的鍵值,你可以發現 Desktop 的值是%USERPROFILE%\桌面 這種形式
C:\Documents and Settings\Administrator\桌面
%USERPROFILE% 對應 C:\Documents and Settings\%用戶名%。對於 Administrator 用戶,這里取得的 Desktop 自然是 C:\Documents and Settings\Administrator\桌面. 那么 user.home 就應該是C:\Documents and Settings\Administrator

public class PrintHome{
public static void main(String[] args) {
System.out.println(System.getProperty("user.home") );
}

 

有些電腦的注冊表中的Desktop可能變為 %USERPROFILE%\桌面 這種形式。這時我們得到的 user.home 可能會變成 C:\Documents and Settings\Administrator\桌面,這時需要手動修改 Desktop%USERPROFILE%\桌面 這種形式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM