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

