1. 程式人生 > >java中System.getProperty的用法。

java中System.getProperty的用法。

在看一些java原始碼程式的時候,經常發現一些System.getProperty()和setProperty。看一下具體是怎麼用的。

可以通過System.getProperties().toString() 看一下目前所有的屬性,都是keyvalue對。

System可以有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環境變數的訪問;載入檔案和庫的方法;還有快速複製陣列的一部分的實用方法。
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):設定指定鍵指示的系統屬性


對於在程式中如果我們想得到一個資原始檔中對應的鍵值對的內容,可以有兩種方法:
1)使用Properties的load方法,將這個檔案先載入進來,之後使用getProperty方法將對應鍵的值得到,比如:
System.getProperties().load("System.Properties.txt");先載入System.Properties.txt檔案
System.getProperties().getProperty("DBType");後將檔案中鍵為DBType的值得到。
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 string

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

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

使用其中的key可以得到一些屬性,供我們在程式中使用

備註:
Microsoft VM是WIN32操作環境中的虛擬機器,VM一般安裝在大多數作業系統下,也包含在多數IE中。
Microsoft VM存在漏洞允許攻擊者對user.dir屬性進行訪問。user.dir屬性包含當前應用程式的工作目錄資訊,也包含使用者名稱資訊,利用這個漏洞可以獲得當前使用者名稱稱。
可以利用WEB頁和HTML形式郵件來觸發。

/*
 * 設定指定鍵對值的系統屬性
 * setProperty (String prop, String value);
 * 
 * 引數:
 * prop - 系統屬性的名稱。
 * value - 系統屬性的值。  
 * 
 * 返回:
 * 系統屬性以前的值,如果沒有以前的值,則返回 null。
 * 
 * 丟擲:  
 * SecurityException - 如果安全管理器存在並且其 checkPermission 方法不允許設定指定屬性。
 * NullPointerException - 如果 key 或 value 為 null。
 * IllegalArgumentException - 如果 key 為空。
 * 注:這裡的system,系統指的是 JRE (runtime)system,不是指 OS。
 * 
*/

//例項
System.setProperty("Property1", "abc");
System.setProperty("Property2","def");

//這樣就把第一個引數設定成為系統的全域性變數!可以在專案的任何一個地方 通過System.getProperty("變數");來獲得,

//System.setProperty 相當於一個靜態變數  ,存在記憶體裡面!

複製程式碼
public class SystemTest {
    
    static {
        setValue();
    }

    public static void setValue() {
        System.setProperty("name", "張三");
        System.setProperty("age", "28");
    }
    
    public static void main(String[] args) {
        System.out.println(System.getProperty("name"));
        System.out.println(System.getProperty("age"));
    }
}
複製程式碼

 輸出:



相關推薦

javaSystem.getProperty用法

在看一些java原始碼程式的時候,經常發現一些System.getProperty()和setProperty。看一下具體是怎麼用的。 可以通過System.getProperties().toString() 看一下目前所有的屬性,都是keyvalue對。 Syste

javaSystem.getProperty()的作用及使用

south pro name watermark sta tin fontsize sun copyto Java中給我們提供了System.getProperty()這個函數,這個函數可以獲取到Java JVM以及操作系統的一些參數,可以供程序判斷等。 System.ge

javaSystem.getProperty()和System.setProperty()和System.getProperties()

System可以有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環境變數的訪問;載入檔案和庫的方法;還有快速複製陣列的一部分的實用方法。 System.getProperties()可以確定當前的系統屬性,返回值是一個Properties; System.load(String f

JavaSystem.setProperty()用法

/*  * 設定指定鍵對值的系統屬性  * setProperty (String prop, String value);  *  * 引數:  * prop - 系統屬性的名稱。  * value - 系統屬性的值。   *  * 返回:  * 系統屬性以前的值,如果

javaStatement詳細用法

1、建立 Statement 物件 建立了到特定資料庫的連線之後,就可用該連線傳送 SQL 語句。Statement 物件用 Connection 的方法createStatement 建立,如下列程式碼段中所示: Connection con = DriverManager.getConnection(u

Java SystemgetProperty 方法獲得系統引數

偶爾在酷殼看文章,看到有大神寫程式碼裡面有一行 System.getProperty(“os.name”) ,當時就開啟自己的Eclipse試了一下,發現竟然出現結果是Windows 7,真是我的系統名,於是上網找了一下,在Java 官方API中找到支援的可以獲得的作業系統的

java的instanceof用法詳解

定義 xtend print 繼承 interface 參數 保留 如果 ack   instanceof是Java的一個二元操作符(運算符),也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的實例,返回的是boolean類型的數據。用它來判斷某個對象是否是

Javastatic關鍵字用法總結

副本 大括號 跟著 rac clas main 靜態成員變量 abstract 全局變量 1. 靜態方法 通常,在一個類中定義一個方法為static,那就是說,無需本類的對象即可調用此方法 聲明為static的方法有以下幾條限制: · 它們僅能調用其他的sta

關於c語言關鍵字extern用法

com 分享 color ima pri int round mage printf 看c語言的ppt看到extern中的生命外部變量,懵逼了。然後在網上查了關於extern的用法。都不是我想要的。 找了半個小時,又寫寫程序,算是明白了。 extern聲明外部變量時候,也

JavaSynchronized的用法

turn 效果 互斥 obj href sta dem data 總結 《編程思想之多線程與多進程(1)——以操作系統的角度述說線程與進程》一文詳細講述了線程、進程的關系及在操作系統中的表現,這是多線程學習必須了解的基礎。本文將接著講一下Java線程同步中的一個

javaprintf的用法

分數 兩個 col pri 進行 nbsp 十進制數 short 百分數 目前printf支持以下格式: %c 單個字符 %d 十進制整數 %f 十進制浮點數

pythonprint()函數的“,”與javaSystem.out.print()函數的“+”

兩個 java 新特性 highlight 不同 連接 .py sys pre python中的print()函數和java中的System.out.print()函數都有著打印字符串的功能。 python中: print("hello,world!") 輸出結果為:h

JavagetResourceAsStream的用法

文件路徑 工程 大致 一個 contex servlet cat 最終 resource 首先,Java中的getResourceAsStream有以下幾種: 1. Class.getResourceAsStream(String path) : path 不以’/‘開頭時

java.currentTimeMillis的用法和含義

imp public out 不同的 轉化 println mtime 時間格式化 time 用法:可以用法獲取當前時間的毫秒數,可以通過毫秒數進行時間比較,時間轉化以及時間格式化等。public class SystemTime {public static void m

java成神之——javastring的用法

基本 ble sta first stand pat concat lower a+b java中String的用法 String基本用法 String分割 String拼接 String截取 String換行符和format格式化 String反轉字符串和去除空白字符

Javafinal的用法總結

++ 標識符 ali 相同 即使 調用方法 理由 new 3.1 1. 修飾基礎數據成員的final 這是final的主要用途,其含義相當於C/C++的const,即該成員被修飾為常量,意味著不可修改。如java.lang.Math類中的PI和E是final

javaenum的用法總結

一、enum的語法與基本作用 建立一個列舉型別需要使用關鍵字enum,隱含了所建立的類都是java.lang.Enum的子類。列舉型別的每一個值都被對映到protect enum(String name, int ordinal);的建構函式中,在這裡列舉的每一個值都被轉換成一個字串

java System

public static void systemTest() { Map<String, String> getenv = System.getenv(); for (Map.Entry<String, String> kvp :

java如何表示pairsmap要求key是不重復的

() ash instead %20 doc ted key sim ner Java 9+ In Java 9, you can simply write: Map.entry(key, value) to create an immutable pair. Note:

java如何表示pairsmap要求key是不重複的

Java 9+ In Java 9, you can simply write: Map.entry(key, value) to create an immutable pair. Note: this method does not allow keys or value