System.setProperty 與 System.getProperty

System能夠有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環境變量的訪問;加載文件和庫的方法;還有快速複製數組的一部分的實用方法。java

System.getProperties()能夠肯定當前的系統屬性,返回值是一個Properties;
System.load(String filename)等同於:System.getProperties().load(String filename)它們的做用是能夠從做爲動態庫德本地文件系統中指定的文件名加載代碼文件。數組

System.setProperties(Properties propes):將系統屬性設置爲Properties參數;
System.setProperties(String key,String value)等同於System.getProperties().setProperties(String key,String value):設置指定鍵指示的系統屬性url


對於在程序中若是咱們想獲得一個資源文件中對應的鍵值對的內容,能夠有兩種方法:
1)使用Properties的load方法,將這個文件先加載進來,以後使用getProperty方法將對應鍵的值獲得,好比:
System.getProperties().load("System.Properties");先加載System.Properties文件
System.getProperties().getProperty("DBType");後將文件中鍵爲DBType的值獲得。spa

(System.load(""),System.getProperty("")其實更直觀)
2)使用第一種方法鍵對應的值得靈活性比較大。還有一種方法是將不從文件中獲得鍵對應的值。在程序中去設一個屬性,好比:
System.getProperties().setProperty("DBType","SQLServer");先設置一個鍵位DBType的屬性
System.getProperties().getProperty("DBType");後經過getProperty方法獲得DBType的值。操作系統


另外使用Properties.getProperty方法的參數也能夠使用系統的一些環境變量,列表以下:
Key                     Meaning
-------------------     ------------------------------
"file.separator"        File separator (e.g., "/")
"java.class.path"       Java classpath
"java.class.version"    Java class version number
"java.home"             Java installation directory
"java.vendor"           Java vendor-specific stringorm

"java.vendor.url"       Java vendor URL
"java.version"          Java version number
"line.separator"        Line separator
"os.arch"               Operating system architecture
"os.name"               Operating system nameci

"path.separator"        Path separator (e.g., ":")
"user.dir"              User's current working directory
"user.home"             User home directory
"user.name"             User account name資源

使用其中的key能夠獲得一些屬性,供咱們在程序中使用get

備註:
Microsoft VM是WIN32操做環境中的虛擬機,VM通常安裝在大多數操做系統下,也包含在多數IE中。
Microsoft VM存在漏洞容許攻擊者對user.dir屬性進行訪問。user.dir屬性包含當前應用程序的工做目錄信息,也包含用戶名信息,利用這個漏洞能夠得到當前用戶名稱。
能夠利用WEB頁和HTML形式郵件來觸發。虛擬機

相關文章
相關標籤/搜索