Java之System.getProperty()的作用及使用說明
System.getProperty()的作用及使用
最近在看一些代碼時,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等
System可以有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環(huán)境變量的訪問;加載文件和庫的方法;還有快速復制數(shù)組的一部分的實用方法System.getProperties()可以確定當前的系統(tǒng)屬性,返回值是一個Properties;
System.load(String filename)等同于:System.getProperties().load(String filename)它們的作用是可以從作為動態(tài)庫的本地文件系統(tǒng)中以指定的文件名加載代碼文件。System.setProperties(Properties propes)將系統(tǒng)屬性設(shè)置為Properties參數(shù);System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):設(shè)置指定鍵指示的系統(tǒng)屬性
| static void | **setProperties**(Properties props) 將系統(tǒng)屬性設(shè)置為 Properties 參數(shù)。 |
|---|---|
| static String | **setProperty**(String key, String value) 設(shè)置指定鍵指示的系統(tǒng)屬性。 |
| static Properties | **getProperties**() 確定當前的系統(tǒng)屬性。 |
|---|---|
| static String | **getProperty**(String key) 獲取指定鍵指示的系統(tǒng)屬性。 |
| static String | **getProperty**(String key, String def) 獲取用指定鍵描述的系統(tǒng)屬性。 |
setProperties
public static void setProperties(Properties props)
將系統(tǒng)屬性設(shè)置為 Properties
首先,如果有安全管理器,則不帶參數(shù)直接調(diào)用其 checkPropertiesAccess 方法。這可能導致一個安全性異常。
參數(shù)是 getProperty(String) 方法使用的當前系統(tǒng)屬性的集合。如果參數(shù)為 null,則忽略當前系統(tǒng)屬性的集合。
參數(shù): - 新的系統(tǒng)屬性。SecurityException``checkPropertiesAccess另請參見:
public static Properties getProperties()
確定當前的系統(tǒng)屬性。
首先,如果有安全管理器,則不帶參數(shù)直接調(diào)用其 checkPropertiesAccess 方法。這可能導致一個安全性異常。
將 getProperty(String) 方法使用的當前系統(tǒng)屬性集合作為 Properties 對象返回。如果沒有當前系統(tǒng)屬性集合,則先創(chuàng)建并初始化一個系統(tǒng)屬性集合。
這個系統(tǒng)屬性集合總是包含以下鍵的值:
鍵相關(guān)值的描述
| java.version | Java 運行時環(huán)境版本 |
|---|---|
| java.vendor | Java 運行時環(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.version | Java 虛擬機實現(xiàn)版本 |
| java.vm.vendor | Java 虛擬機實現(xiàn)供應商 |
| java.vm.name | Java 虛擬機實現(xiàn)名稱 |
| java.specification.version | Java 運行時環(huán)境規(guī)范版本 |
| java.specification.vendor | Java 運行時環(huán)境規(guī)范供應商 |
| java.specification.name | Java 運行時環(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 | 操作系統(tǒng)的名稱 |
| os.arch | 操作系統(tǒng)的架構(gòu) |
| os.version | 操作系統(tǒng)的版本 |
| file.separator | 文件分隔符(在 UNIX 系統(tǒng)中是“/”) |
| path.separator | 路徑分隔符(在 UNIX 系統(tǒng)中是“:”) |
| line.separator | 行分隔符(在 UNIX 系統(tǒng)中是“/n”) |
| user.name | 用戶的賬戶名稱 |
| user.home | 用戶的主目錄 |
| user.dir | 用戶的當前工作目錄 |
系統(tǒng)屬性值中的多個路徑是用平臺的路徑分隔符分隔的。
注意,即使安全管理器不允許執(zhí)行 getProperties 操作,它可能也會選擇允許執(zhí)行 getProperty(String) 操作。
**返回:**拋出: - 如果安全管理器存在并且其 方法不允許訪問系統(tǒng)屬性。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"));
}
} 輸出結(jié)果:
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
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式
這篇文章主要介紹了Spring AOP 對象內(nèi)部方法間的嵌套調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot整合Mybatis-plus實現(xiàn)多級評論功能
本文介紹了如何使用SpringBoot整合Mybatis-plus實現(xiàn)多級評論功能,同時提供了數(shù)據(jù)庫的設(shè)計和詳細的后端代碼,前端界面使用的Vue2,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-05-05
SpringBoot啟動security后如何關(guān)閉彈出的/login頁面
這篇文章主要介紹了SpringBoot啟動security后如何關(guān)閉彈出的login頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Java實現(xiàn)samza轉(zhuǎn)換成flink
將Apache Samza作業(yè)遷移到Apache Flink作業(yè)是一個復雜的任務,因為這兩個流處理框架有不同的API和架構(gòu),本文我們就來看看如何使用Java實現(xiàn)samza轉(zhuǎn)換成flink吧2024-11-11
MybatisPlus,無XML分分鐘實現(xiàn)CRUD操作
這篇文章主要介紹了MybatisPlus,無XML分分鐘實現(xiàn)CRUD操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

