System.getProperty()的作用及使用
最近在看一些程式碼時,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等
System可以有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環(huán)境變數的存?。惠d入檔案和函式庫的方法;還有快速複製數組的一部分的實用方法System.getProperties ()可以確定目前的系統屬性,回傳值是一個Properties;
#System.load(String filename)
等同於:System.getProperties().load (String filename)它們的作用是可以從作為動態(tài)庫的本機檔案系統以指定的檔案名稱載入程式碼檔案。
System.setProperties(Properties propes)
將系統屬性設定為Properties參數;
System. setProperties(String key,String value)
等同於System.getProperties().setProperties(String key,String value):設定指定鍵指示的系統屬性
#static void |
**setProperties**(Properties props) 將系統屬性設定為Properties 參數。 |
static String |
**setProperty**(String key, String value) 設定指定鍵指示的系統屬性。 |
static Properties |
**getProperties**() 決定目前的系統屬性。 |
static String |
**getProperty**(String key) 取得指定鍵指示的系統屬性。 |
static String |
**getProperty**(String key, String def) 取得以指定鍵描述的系統屬性。 |
setProperties
public static void setProperties(Properties props)
將系統屬性設定為Properties
首先,如果有安全管理器,則不含參數直接呼叫其checkPropertiesAccess
方法。這可能導致一個安全性異常。
參數是 getProperty(String) 方法使用的目前系統屬性的集合。如果參數為 null
,則忽略目前系統屬性的集合。
參數: - 新的系統屬性。 SecurityException``checkPropertiesAccess
另請參閱:
public static Properties getProperties()
確定目前的系統屬性。
首先,如果有安全管理器,則不帶參數直接呼叫其 checkPropertiesAccess
方法。這可能導致一個安全性異常。
將 getProperty(String) 方法使用的目前系統屬性集合作為 Properties
物件傳回。如果沒有目前系統屬性集合,則先建立並初始化一個系統屬性集合。
這個系統屬性集合總是包含以下鍵的值:
鍵相關值的描述
java.version | Java 執(zhí)行環(huán)境版本 |
---|
java.vendor | Java 執(zhí)行環(huán)境供應商 |
java.vendor.url | Java 供應商的URL |
#java.home | Java 安裝目錄 |
java.vm.specification.version | Java 虛擬機器規(guī)範版本 |
#java.vm.specification.vendor | ##Java 虛擬機器規(guī)格供應商 |
java.vm.specification.name | #Java 虛擬機器規(guī)格名稱 |
##java.vm. versionJava 虛擬機器實作版本 | |
java.vm.vendorJava 虛擬機器實作供應商 | | ##java.vm.name
Java 虛擬機器實作名稱 | | #java.specification.version
##Java 執(zhí)行階段環(huán)境規(guī)格版本 | java.specification.vendor |
Java 執(zhí)行階段環(huán)境規(guī)格供應商 | java.specification.name |
#Java 執(zhí)行階段環(huán)境規(guī)格名稱 | java.class.version |
Java 類別格式版本號 | ##java.class .path | Java 類別路徑
| java.library.path | 載入函式庫時搜尋的路徑清單
| java.io.tmpdir | 預設的暫存檔案路徑
| #java.compiler | 要使用的JIT 編譯器的名稱
| java.ext.dirs | 一個或多個擴充目錄的路徑
| os.name | #作業(yè)系統的名稱
| os.arch | #作業(yè)系統的架構
| os.version | #作業(yè)系統的版本
| file.separator | 檔案分隔符號(在UNIX 系統中是「/」)
| path.separator | 路徑分隔符號(在UNIX 系統中是「:」)
| line.separator | 行分隔符號(在UNIX 系統中是「/n」)
| user.name | 使用者的帳號名稱
| user.home | 使用者的主目錄
| user.dir | 使用者的目前工作目錄
| 系統屬性值中的多個路徑是用平臺的路徑分隔符分隔的。
注意,即使安全管理器不允許執(zhí)行 getProperties
操作,它可能也會選擇允許執(zhí)行 getProperty(String) 操作。
**返回:**拋出: - 如果安全管理器存在并且其 方法不允許訪問系統屬性。setProperties(java.util.Properties)SecurityExceptionSecurityManager.checkPropertiesAccess()Properties
Java代碼
public class TestSystemGetSet {
static{
System.setProperty("DB", "mysql");//可以作為全局變量,在任何地方使用
}
public static void main(String[] args) {
System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("java.library.path"));
System.out.println(System.getProperty("DB"));
}
}
輸出結果:
10.0
C:\Java\jdk1.8.0_121\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Java/jre8/bin/server;C:/Java/jre8/bin;C:/Java/jre8/lib/amd64;C:\Program Files\IBM\WebSphere MQ\java\lib;C:\Program Files\IBM\WebSphere MQ\java\lib64;E:\app\Administrator\product\11.2.0\dbhome_2\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\MySQL\MySQL Server 5.1\bin;D:/maven\bin;C:\Program Files (x86)\Rational\common;C:\Program Files\IBM\WebSphere MQ\bin64;C:\Program Files\IBM\WebSphere MQ\bin;C:\Program Files\IBM\WebSphere MQ\tools\c\samples\bin;C:\Java\jdk1.8.0_121\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;D:\maven\bin;E:\soft\apache-ant-1.10.1\bin;D:\erl9.2\bin;;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;E:\tool\eclipse;;.
mysql
以上是Java中的System.getProperty()方法的作用和用法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何在Java的地圖上迭代?
Jul 13, 2025 am 02:54 AM
遍歷Java中的Map有三種常用方法:1.使用entrySet同時獲取鍵和值,適用於大多數場景;2.使用keySet或values分別遍歷鍵或值;3.使用Java8的forEach簡化代碼結構。 entrySet返回包含所有鍵值對的Set集合,每次循環(huán)獲取Map.Entry對象,適合頻繁訪問鍵和值的情況;若只需鍵或值,可分別調用keySet()或values(),也可在遍歷鍵時通過map.get(key)獲取值;Java8中可通過Lambda表達式使用forEach((key,value)->
Java可選示例
Jul 12, 2025 am 02:55 AM
Optional能清晰表達意圖並減少null判斷的代碼噪音。 1.Optional.ofNullable是處理可能為null對象的常用方式,如從map中取值時可結合orElse提供默認值,邏輯更清晰簡潔;2.通過鍊式調用map實現嵌套取值,安全地避免NPE,任一環(huán)節(jié)為null則自動終止並返回默認值;3.filter可用於條件篩選,滿足條件才繼續(xù)執(zhí)行後續(xù)操作,否則直接跳到o??rElse,適合輕量級業(yè)務判斷;4.不建議過度使用Optional,如基本類型或簡單邏輯中其反而增加複雜度,部分場景直接返回nu
Java中的可比較與比較器
Jul 13, 2025 am 02:31 AM
在Java中,Comparable用於類內部定義默認排序規(guī)則,Comparator用於外部靈活定義多種排序邏輯。 1.Comparable是類自身實現的接口,通過重寫compareTo()方法定義自然順序,適用於類有固定、最常用的排序方式,如String或Integer。 2.Comparator是外部定義的函數式接口,通過compare()方法實現,適合同一類需要多種排序方式、無法修改類源碼或排序邏輯經常變化的情況。兩者區(qū)別在於Comparable只能定義一種排序邏輯且需修改類本身,而Compar
如何修復java.io.notserializable Exception?
Jul 12, 2025 am 03:07 AM
遇到java.io.NotSerializableException的核心解決方法是確保所有需序列化的類實現Serializable接口,並檢查嵌套對象的序列化支持。 1.給主類添加implementsSerializable;2.確保類中自定義字段對應的類也實現Serializable;3.用transient標記不需要序列化的字段;4.檢查集合或嵌套對像中的非序列化類型;5.查看異常信息定位具體哪個類未實現接口;6.對無法修改的類考慮替換設計,如保存關鍵數據或使用可序列化的中間結構;7.考慮改
如何處理Java中的字符編碼問題?
Jul 13, 2025 am 02:46 AM
處理Java中的字符編碼問題,關鍵是在每一步都明確指定使用的編碼。 1.讀寫文本時始終指定編碼,使用InputStreamReader和OutputStreamWriter並傳入明確的字符集,避免依賴系統默認編碼。 2.在網絡邊界處理字符串時確保兩端一致,設置正確的Content-Type頭並用庫顯式指定編碼。 3.謹慎使用String.getBytes()和newString(byte[]),應始終手動指定StandardCharsets.UTF_8以避免平臺差異導致的數據損壞??傊ㄟ^在每個階段
Java方法參考解釋了
Jul 12, 2025 am 02:59 AM
方法引用是Java中一種簡化Lambda表達式的寫法,使代碼更簡潔。它不是新語法,而是Java8引入的Lambda表達式的一種快捷方式,適用於函數式接口的上下文。其核心在於將已有方法直接作為函數式接口的實現來使用。例如System.out::println等價於s->System.out.println(s)。方法引用主要有四種形式:1.靜態(tài)方法引用(ClassName::staticMethodName);2.實例方法引用(綁定到特定對象,instance::methodName);3.
JavaScript數據類型:原始與參考
Jul 13, 2025 am 02:43 AM
JavaScript的數據類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時復制副本,因此互不影響;引用類型如對象、數組和函數存儲的是內存地址,指向同一對象的變量會相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問題。理解這兩類差異有助於編寫更穩(wěn)定可靠的代碼。
如何在Java解析JSON?
Jul 11, 2025 am 02:18 AM
解析JSON在Java中的常見方式有三種:使用Jackson、Gson或org.json。 1.Jackson適合大多數項目,性能好且功能全面,支持對象與JSON字符串之間的轉換及註解映射;2.Gson更適合Android項目或輕量級需求,使用簡單但處理複雜結構和高性能場景略遜;3.org.json適用於簡單任務或小腳本,不推薦用於大型項目,因其靈活性和類型安全不足。選擇應根據實際需求決定。
See all articles