在 Java 開發中,獲取程序運行時的當前工作目錄是一項基礎且常見的需求。無論是文件操作、資源加載還是路徑拼接,準確獲取當前目錄都是關鍵步驟。本文將詳細介紹如何通過 System.getProperty() 方法輕鬆實現這一目標,並附帶一份常用系統屬性參考表,幫助開發者快速查閱。
Java 提供了統一的系統屬性接口來訪問運行環境信息。獲取當前工作目錄只需一行代碼:
String currentDir = System.getProperty("user.dir");
該方法返回的路徑為 JVM 啟動時的工作目錄,通常是執行 java 命令時所在的目錄。在 IDE 中運行項目時,該目錄通常為項目根目錄。
System.getProperty() 還能獲取大量有用的運行環境參數。以下表格整理了開發中高頻使用的屬性鍵及其含義:
| 屬性鍵 | 描述 |
|---|---|
| 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.version | Java 虛擬機實現版本 |
| java.vm.vendor | Java 虛擬機實現供應商 |
| 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 | 用戶的當前工作目錄 |
file.separator 實現路徑拼接的跨平台兼容。當前工作目錄取決於 JVM 啟動方式,打包為 JAR 運行時可能與 IDE 中不同。建議在生產環境中通過啟動腳本指定工作目錄,或使用絕對路徑配置關鍵資源路徑。