jre版本通过system.getproperty("java.version")获取,如"17.0.2";系统架构用"os.arch"(如"aarch64"),操作系统信息用"os.name"和"os.version",均需设默认值防null。

直接用 System.getProperty() 就能拿到 JRE 版本和系统架构,不需要额外依赖或复杂判断。
JRE 版本信息怎么取
Java 运行时版本(即 JRE 版本)通常和 java.version 属性一致,这是最常用、最可靠的标识:
-
System.getProperty("java.version")—— 返回类似"17.0.2"或"21.0.1"的标准版本号 -
System.getProperty("java.runtime.version")—— 有些 JDK 厂商(如 OpenJ9、Zulu)会提供更细粒度的构建号,比如"17.0.2+8-LTS" -
System.getProperty("java.home")—— 返回 JRE 安装根目录(如/usr/lib/jvm/zulu-17),可辅助验证运行时身份
系统架构与操作系统信息
这些属性反映的是程序实际运行的底层环境,和编译时无关:
-
System.getProperty("os.name")—— 操作系统名称,如"Linux"、"Windows 10"、"Mac OS X" -
System.getProperty("os.version")—— 系统内核或发行版版本,如"6.8.0-52-generic"(Ubuntu)、"10.0"(Windows)、"14.5"(macOS) -
System.getProperty("os.arch")—— CPU 架构,常见值:"amd64"、"aarch64"、"x86_64"、"x86";注意它不等于 JVM 编译目标,而是运行时真实架构
简单实用的组合示例
一段可直接运行的代码,兼顾可读性和健壮性:
String jreVer = System.getProperty("java.version", "unknown");
String osName = System.getProperty("os.name", "unknown");
String osArch = System.getProperty("os.arch", "unknown");
System.out.printf("JRE %s on %s (%s)%n", jreVer, osName, osArch);
// 输出示例:JRE 21.0.3 on Linux (aarch64)
注意事项
- 所有
System.getProperty()返回值都可能为null,建议用带默认值的重载方法避免空指针 -
os.arch的值由 JVM 启动时探测决定,不能靠Runtime.getRuntime().availableProcessors()推断 - 若需更详细的系统指标(如内存总量、CPU 使用率),应配合
ManagementFactory.getOperatingSystemMXBean()











