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)境變量的訪問;加載文件和庫的方法;還有快速復(fù)制數(shù)組的一部分的實(shí)用方法System.getProperties()可以確定當(dāng)前的系統(tǒng)屬性,返回值是一個(gè)Properties;
System.load(String filename)
等同于:System.getProperties().load(String filename)它們的作用是可以從作為動(dòng)態(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**() 確定當(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 | 加載庫時(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實(shí)現(xiàn)直接插入排序和折半插入排序算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)直接插入排序和折半插入排序算法示例,文中對(duì)算法的思想和時(shí)間復(fù)雜度都有簡單的講解,需要的朋友可以參考下2016-04-04Java實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)的三種方法
在Java中實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)的方法,通常我們會(huì)使用java.util.Random類來生成隨機(jī)數(shù),然后基于這些隨機(jī)數(shù)來選擇中獎(jiǎng)?wù)?以下將給出幾種常見的隨機(jī)抽獎(jiǎng)實(shí)現(xiàn)方式,需要的朋友可以參考下2024-09-09VSCode?配置?Spring?Boot?項(xiàng)目開發(fā)環(huán)境的全過程
兩三年前曾經(jīng)試過配置Java環(huán)境, 存在不少問題作罷. 最近搜了下相關(guān)的文章, 感覺VSCode對(duì)Java項(xiàng)目的支持比三年前完善了不少. 今天實(shí)際配置了一下環(huán)境, 把自己常用的功能過了一遍, 基本能跑通開發(fā)流程, 做個(gè)筆記,需要的朋友可以參考下2024-03-03Java通過工廠、Map容器創(chuàng)建對(duì)象的方法
這篇文章主要介紹了Java通過工廠、Map容器創(chuàng)建對(duì)象的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03理解JDK動(dòng)態(tài)代理為什么必須要基于接口
這篇文章主要介紹了理解JDK動(dòng)態(tài)代理為什么必須要基于接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Druid(新版starter)在SpringBoot下的使用教程
Druid是Java語言中最好的數(shù)據(jù)庫連接池,Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能,DruidDataSource支持的數(shù)據(jù)庫,這篇文章主要介紹了Druid(新版starter)在SpringBoot下的使用,需要的朋友可以參考下2023-05-05