Java之System.getProperty()的作用及使用說明
System.getProperty()的作用及使用
最近在看一些代碼時,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等
System可以有對標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,錯誤輸出流;對外部定義的屬性和環(huán)境變量的訪問;加載文件和庫的方法;還有快速復(fù)制數(shù)組的一部分的實用方法System.getProperties()可以確定當(dāng)前的系統(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**() 確定當(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)致一個安全性異常。
參數(shù)是 getProperty(String) 方法使用的當(dāng)前系統(tǒng)屬性的集合。如果參數(shù)為 null
,則忽略當(dāng)前系統(tǒng)屬性的集合。
參數(shù): - 新的系統(tǒng)屬性。SecurityException``checkPropertiesAccess
另請參見:
public static Properties getProperties()
確定當(dāng)前的系統(tǒng)屬性。
首先,如果有安全管理器,則不帶參數(shù)直接調(diào)用其 checkPropertiesAccess
方法。這可能導(dǎo)致一個安全性異常。
將 getProperty(String) 方法使用的當(dāng)前系統(tǒng)屬性集合作為 Properties
對象返回。如果沒有當(dāng)前系統(tǒng)屬性集合,則先創(chuàng)建并初始化一個系統(tǒng)屬性集合。
這個系統(tǒng)屬性集合總是包含以下鍵的值:
鍵相關(guān)值的描述
java.version | Java 運行時環(huán)境版本 |
---|---|
java.vendor | Java 運行時環(huán)境供應(yīng)商 |
java.vendor.url | Java 供應(yīng)商的 URL |
java.home | Java 安裝目錄 |
java.vm.specification.version | Java 虛擬機規(guī)范版本 |
java.vm.specification.vendor | Java 虛擬機規(guī)范供應(yīng)商 |
java.vm.specification.name | Java 虛擬機規(guī)范名稱 |
java.vm.version | Java 虛擬機實現(xiàn)版本 |
java.vm.vendor | Java 虛擬機實現(xiàn)供應(yīng)商 |
java.vm.name | Java 虛擬機實現(xiàn)名稱 |
java.specification.version | Java 運行時環(huán)境規(guī)范版本 |
java.specification.vendor | Java 運行時環(huán)境規(guī)范供應(yīng)商 |
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 | 用戶的當(dāng)前工作目錄 |
系統(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)文章
VSCode?配置?Spring?Boot?項目開發(fā)環(huán)境的全過程
兩三年前曾經(jīng)試過配置Java環(huán)境, 存在不少問題作罷. 最近搜了下相關(guān)的文章, 感覺VSCode對Java項目的支持比三年前完善了不少. 今天實際配置了一下環(huán)境, 把自己常用的功能過了一遍, 基本能跑通開發(fā)流程, 做個筆記,需要的朋友可以參考下2024-03-03Druid(新版starter)在SpringBoot下的使用教程
Druid是Java語言中最好的數(shù)據(jù)庫連接池,Druid能夠提供強大的監(jiān)控和擴展功能,DruidDataSource支持的數(shù)據(jù)庫,這篇文章主要介紹了Druid(新版starter)在SpringBoot下的使用,需要的朋友可以參考下2023-05-05