System.getProperty()用于获取JVM启动时加载的系统属性,如os.name、java.version等,不可修改但可安全读取,广泛用于跨平台适配、路径构造与调试诊断。

System.getProperty() 是 Java 中获取运行时系统属性最直接的方式,这些属性由 JVM 启动时自动加载,反映当前 Java 环境、操作系统和用户上下文等关键信息。它们不可修改,但可安全读取,广泛用于跨平台适配、路径构造、调试诊断等场景。
操作系统相关属性
用于识别运行环境,是做平台判断和路径处理的基础:
-
os.name:操作系统名称,如
"Windows 10"、"Linux"、"Mac OS X" -
os.arch:CPU 架构,如
"amd64"、"aarch64"、"x86" -
os.version:操作系统版本号,如
"10.0"(Windows)、"6.8.0-59-generic"(Linux) -
file.separator:文件路径分隔符,
"\"(Windows)或"/"(Unix/Linux/macOS) -
path.separator:类路径或环境变量中路径项的分隔符,
";"(Windows)或":"(Unix 类系统) -
line.separator:行结束符,
" "(Windows)或" "(其他系统)
Java 运行时与 JVM 属性
反映当前 JDK/JRE 版本、安装位置及虚拟机实现细节:
-
java.version:JRE 版本,如
"21.0.3" -
java.home:JRE 安装根目录,如
"C:Program FilesJavajdk-21"或"/usr/lib/jvm/java-21-openjdk-amd64" -
java.class.path:启动时指定的类路径(
-cp或CLASSPATH),含 jar 和目录 - java.library.path:本地库(.dll/.so/.dylib)搜索路径列表
-
java.io.tmpdir:默认临时目录,如
"C:UsersXXXAppDataLocalTemp"或"/tmp" -
java.vm.name:JVM 实现名称,如
"OpenJDK Server VM"或"HotSpot VM" -
java.vm.vendor:JVM 供应商,如
"Oracle Corporation"或"Eclipse Adoptium"
用户与工作环境属性
描述当前执行用户的上下文,常用于构建配置路径或日志目录:
-
user.name:登录用户名(非显示名),如
"alice" -
user.home:用户主目录,如
"C:Userslice"或"/home/alice" -
user.dir:JVM 启动时的工作目录(不是项目根目录,而是
java -jar xxx.jar所在目录) -
user.country 和 user.language:基于系统区域设置的语言与国家代码,如
"zh"+"CN" -
file.encoding:JVM 默认字符编码,如
"UTF-8"(注意:可能受启动参数-Dfile.encoding=UTF-8影响)
其他实用属性
解决特定兼容性或调试问题:
- sun.jnu.encoding:用于命令行参数、文件名的本地编码(尤其在 Windows 中影响中文路径解析)
-
java.specification.version:Java SE 规范版本,如
"21" -
java.class.version:对应 class 文件格式版本号(如 Java 21 →
65.0) - java.ext.dirs:已弃用,指向扩展机制目录(JDK 9+ 模块化后不再使用)

















