最直接的方式是运行java -version,它立即显示PATH中首个java可执行文件所属的JDK/JRE版本;但需配合javac -version确认编译器版本是否一致,再通过echo $JAVA_HOME或where java定位路径,并用Runtime.version()获取程序真实运行版本。

最直接的方式是运行 java -version,它会立即显示当前 PATH 中第一个 java 可执行文件所属的 JDK(或 JRE)版本。但要注意:这个“默认”只是命令行环境下的默认,不等于项目实际使用的 JDK。
确认命令行默认 JDK 版本
打开终端(Linux/macOS)或命令提示符(Windows),依次执行:
-
java -version→ 查看运行时版本(JRE 层级,通常与 JDK 一致) -
javac -version→ 查看编译器版本,这才是 JDK 完整性的关键指标
两个输出应基本一致(如都是 17.0.2)。若不一致,说明系统中混用了不同来源的 JRE 和 JDK,环境已混乱。
定位当前生效的 JDK 安装路径
知道版本还不够,得找到它在哪:
立即学习“Java免费学习笔记(深入)”;
- 检查环境变量:
echo $JAVA_HOME(Linux/macOS)或echo %JAVA_HOME%(Windows) - 查 java 命令位置:
which java(Linux/macOS)或where java(Windows) - 追踪真实路径:
readlink -f $(which java)(Linux),输出类似/usr/lib/jvm/java-17-openjdk-amd64/bin/java,其父目录就是 JDK 根目录
macOS 用户需用 greadlink -f(需先 brew install coreutils)。
查看系统中所有已安装的 JDK
一个系统常装多个 JDK,仅靠 java -version 看不到全貌:
- Linux(Debian/Ubuntu):
update-alternatives --list java或ls /usr/lib/jvm - Linux(RHEL/CentOS):
alternatives --display java或rpm -qa | grep jdk - macOS:
/usr/libexec/java_home -V(原生支持,最可靠) - Windows:手动检查
C:\Program Files\Java\下的子目录,或用where java结合路径推断
代码中获取真实运行时 JDK 版本
命令行结果可能被 IDE、Maven 或容器覆盖。程序内部才反映最终执行环境:
- JDK 9+ 推荐:
Runtime.version().toString()(返回结构化字符串,如17.0.2+8-86) - 通用方式:
System.getProperty("java.version")(返回字符串,如17.0.2)
这两个值由 JVM 启动时确定,不受 JAVA_HOME 或 IDE 设置干扰,是判断“实际运行版本”的唯一可靠依据。


















