runtime.version() 返回 runtime.version 对象,支持通过 major()、minor()、security()、build()、pre()、optional() 获取结构化版本信息,tostring() 返回符合 java 9+ 规范的完整版本字符串如“17.0.2+8”,该 api 自 java 9 起可用。

可以直接调用 Runtime.version() 获取结构化的 Java 运行时版本信息,它返回一个 Runtime.Version 对象,支持细粒度访问主版本、次版本、安全版本和构建信息。
获取完整版本字符串
调用 toString() 方法可获得符合 Java 9+ 新版号方案的字符串,格式为 $VNUM(-$PRE)?+$BUILD(-$OPT)?,例如 17.0.2+8 或 21.0.1+12-LTS:
-
Runtime.version().toString()→ 返回类似"17.0.2+8"的完整标识
提取各段版本数字
Java 9 引入的 Runtime.Version 提供了明确的 getter 方法,不再依赖字符串解析:
-
major():主版本号(如 17) -
minor():次版本号(如 0) -
security():安全补丁号(如 2) -
build():构建编号(如 8) -
pre():预发布标识符(如 "ea" 或 null) -
optional():可选附加信息(如时间戳或 "-LTS")
注意兼容性与运行环境
该 API 自 Java 9 起可用,低版本 JDK(如 8)调用会编译失败。确保项目 JDK 设置为 9 或更高,并在模块化项目中无需额外导出 —— java.base 模块已默认导出 java.lang.Runtime 及其嵌套类。
简单示例代码
以下代码在 JDK 17 下运行输出为:
17.0.2+81702











