java -version 是最常用可靠的 JVM 版本查询方式,可显示版本号、运行时环境及厂商信息;还可配合 -fullversion 和 -XshowSettings:properties 使用,程序中可通过 System.getProperty() 或 Runtime.version() 动态获取。

直接在命令行运行 java -version 就能快速查看当前使用的 JVM 版本和厂商信息,这是最常用也最可靠的方式。
命令行快速查询 JVM 版本
打开终端或命令提示符,输入以下命令:
- java -version:显示 JRE/JVM 的版本号、运行时环境和虚拟机厂商(如 OpenJDK、Oracle JDK、Zulu 等)
- java -fullversion:输出更精确的内部版本字符串(例如 "17.0.1+12-LTS"),适合排查构建或兼容性问题
-
java -XshowSettings:properties -version:除版本外,还会打印系统属性,包括
java.vm.version、java.vm.name、java.home等关键 JVM 路径与配置信息
在 Java 程序中动态获取 JVM 信息
如果需要在运行时获取 JVM 版本等信息,可通过 System.getProperty() 或 Runtime.version()(Java 9+)实现:
-
System.getProperty("java.version")→ 返回主版本号(如 "17.0.1") -
System.getProperty("java.vm.name")→ 返回虚拟机名称(如 "OpenJDK Server VM") -
System.getProperty("java.vm.vendor")→ 返回厂商(如 "Eclipse Adoptium") -
Runtime.version().feature()→ Java 9+ 中获取主版本号整数(如 17),便于做版本判断
区分 JDK、JRE 和 JVM 版本含义
日常说的“JVM 版本”实际是 JDK/JRE 所带的虚拟机版本,三者版本号通常一致,但概念不同:
立即学习“Java免费学习笔记(深入)”;
- JDK 是开发工具包,含编译器(javac)、调试器及 JVM;
- JRE 是运行环境,包含 JVM 和基础类库;
- JVM 是具体执行字节码的引擎,其版本由厂商实现决定(如 HotSpot、GraalVM、Zing)。
同一 JDK 安装下可能有多个 JVM 实现(如通过 -XX:+UseG1GC 切 GC,或用 --vm=graalvm 启动不同后端),但 java -version 显示的是默认启用的 JVM 实现信息。
常见误区与验证技巧
有时看到版本号不一致,可能是环境配置问题:
- 检查是否多个 JDK 共存:
which java(Linux/macOS)或where java(Windows)确认调用路径 - IDE(如 IntelliJ、Eclipse)可能使用独立配置的 JDK,需在项目设置中查看“Project SDK”或 “JRE System Library”
- Docker 容器内运行时,
java -version查的是镜像内 JDK,不是宿主机版本 - 某些发行版(如 Amazon Corretto、Microsoft Build of OpenJDK)会在
java -version输出中明确标注厂商和长期支持状态










