System.getProperty()的作用及使用
最近在看一些程式碼時,很多地方都用到了System.getProperty()、System.load()、System.loadLibrary()等等
System可以有對標準輸入,標準輸出,錯誤輸出流;對外部定義的屬性和環境變數的存取;載入檔案和函式庫的方法;還有快速複製數組的一部分的實用方法System.getProperties ()可以確定目前的系統屬性,回傳值是一個Properties;
#System.load(String filename)
等同於:System.getProperties().load (String filename)它們的作用是可以從作為動態庫的本機檔案系統以指定的檔案名稱載入程式碼檔案。
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 執行環境版本 |
---|
java.vendor | Java 執行環境供應商 |
java.vendor.url | Java 供應商的URL |
#java.home | Java 安裝目錄 |
java.vm.specification.version | Java 虛擬機器規範版本 |
#java.vm.specification.vendor | ##Java 虛擬機器規格供應商 |
java.vm.specification.name | #Java 虛擬機器規格名稱 |
##java.vm. versionJava 虛擬機器實作版本 | |
java.vm.vendorJava 虛擬機器實作供應商 | | ##java.vm.name
Java 虛擬機器實作名稱 | | #java.specification.version
##Java 執行階段環境規格版本 | java.specification.vendor |
Java 執行階段環境規格供應商 | java.specification.name |
#Java 執行階段環境規格名稱 | java.class.version |
Java 類別格式版本號 | ##java.class .path | Java 類別路徑
| java.library.path | 載入函式庫時搜尋的路徑清單
| java.io.tmpdir | 預設的暫存檔案路徑
| #java.compiler | 要使用的JIT 編譯器的名稱
| java.ext.dirs | 一個或多個擴充目錄的路徑
| os.name | #作業系統的名稱
| os.arch | #作業系統的架構
| os.version | #作業系統的版本
| file.separator | 檔案分隔符號(在UNIX 系統中是「/」)
| path.separator | 路徑分隔符號(在UNIX 系統中是「:」)
| line.separator | 行分隔符號(在UNIX 系統中是「/n」)
| user.name | 使用者的帳號名稱
| user.home | 使用者的主目錄
| user.dir | 使用者的目前工作目錄
| 系统属性值中的多个路径是用平台的路径分隔符分隔的。
注意,即使安全管理器不允许执行 getProperties
操作,它可能也会选择允许执行 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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Edge PDF查看器不起作用
Aug 07, 2025 pm 04:36 PM
testthepdfinanotherapptoderineiftheissueiswiththefileoredge.2.enablethebuilt inpdfviewerbyTurningOff“ eflblyopenpenpenpenpenpdffilesexternally”和“ downloadpdffiles” inedgesettings.3.clearbrowsingdatainclorwearbrowsingdataincludingcookiesandcachedcachedfileresteroresoreloresorelorsolesoresolesoresolvereresoreorsolvereresoreolversorelesoresolvererverenn
用Docker將Java應用程序部署到Kubernetes
Aug 08, 2025 pm 02:45 PM
容器化Java應用:創建Dockerfile,使用基礎鏡像如eclipse-temurin:17-jre-alpine,複製JAR文件並定義啟動命令,通過dockerbuild構建鏡像並用dockerrun測試本地運行。 2.推送鏡像到容器註冊表:使用dockertag標記鏡像並推送到DockerHub等註冊表,需先登錄dockerlogin。 3.部署到Kubernetes:編寫deployment.yaml定義Deployment,設置副本數、容器鏡像和資源限制,編寫service.yaml創建
如何在Java中實現簡單的TCP客戶端?
Aug 08, 2025 pm 03:56 PM
Importjava.ioandjava.net.SocketforI/Oandsocketcommunication.2.CreateaSocketobjecttoconnecttotheserverusinghostnameandport.3.UsePrintWritertosenddataviaoutputstreamandBufferedReadertoreadserverresponsesfrominputstream.4.Usetry-with-resourcestoautomati
VS代碼快捷方式專注於Explorer面板
Aug 08, 2025 am 04:00 AM
VSCode中可通過快捷鍵快速切換面板與編輯區。要跳轉至左側資源管理器面板,使用Ctrl Shift E(Windows/Linux)或Cmd Shift E(Mac);返回編輯區可用Ctrl `或Esc或Ctrl 1~9。相比鼠標操作,鍵盤快捷鍵更高效且不打斷編碼節奏。其他技巧包括:Ctrl KCtrl E聚焦搜索框,F2重命名文件,Delete刪除文件,Enter打開文件,方向鍵展開/收起文件夾。
如何在Java執行準備好的聲明?
Aug 06, 2025 pm 04:04 PM
加載JDBC驅動並建立數據庫連接;2.使用Connection.prepareStatement()創建含?佔位符的SQL語句;3.調用setString()、setInt()等方法從1開始設置參數值;4.根據SQL類型調用executeUpdate()、executeQuery()或execute()執行語句;5.使用try-with-resources自動關閉Connection、PreparedStatement和ResultSet資源,防止內存洩漏,確保安全高效地處理數據庫操作。
如何使用Mockito在Java中嘲笑?
Aug 07, 2025 am 06:32 AM
要有效使用Mockito進行Java單元測試,首先需添加Mockito依賴,Maven項目在pom.xml中加入mockito-core依賴,Gradle項目添加testImplementation'org.mockito:mockito-core:5.7.0';接著通過@Mock註解(配合@ExtendWith(MockitoExtension.class))或mock()方法創建模擬對象;然後使用when(...).thenReturn(...)等方式對模擬對象的方法行為進行存根,也可配置異
Java對象的序列化過程是什麼?
Aug 08, 2025 pm 04:03 PM
JavaserializationConvertSanObject'SstateIntoAbyTeSteAmForStorageorTransermission,andDeserializationReconstructstheObjectStheObjectFromThstream.1.toenableserialization,aclassMustimustimplementTheSerializableizableface.2.UseObjectObjectObjectObjectOutputputputputputtreamToserialializeanobectizeanobectementeabectenobexpent,savin
如何在Java中使用一個時循環
Aug 08, 2025 pm 04:04 PM
AwhileloopinJavarepeatedlyexecutescodeaslongastheconditionistrue;2.Initializeacontrolvariablebeforetheloop;3.Definetheloopconditionusingabooleanexpression;4.Updatethecontrolvariableinsidethelooptopreventinfinitelooping;5.Useexampleslikeprintingnumber
See all articles