最直接有效的方式是运行java -version和javac -version,前者显示默认jre版本,后者确认jdk编译器版本是否匹配;再通过echo $java_home或where java定位安装路径,并用/usr/libexec/java_home -v(macos)或update-alternatives --list java(linux)查全所有已装jdk。

最直接有效的方式就是运行 java -version,它能立刻告诉你当前默认使用的 JDK 版本。但仅靠这一个命令还不够——你可能装了多个 JDK,也可能没配好环境变量,甚至分不清 JDK 和 JRE 的区别。下面分场景讲清楚怎么看、怎么看全、怎么看准。
确认当前默认 JDK 版本
这是日常开发中最常需要的操作:
- 打开终端(Linux/macOS)或命令提示符(Windows)
- 输入 java -version 并回车 → 显示运行时版本(JRE 层级,通常与 JDK 一致)
- 再输入 javac -version 并回车 → 显示编译器版本,这才是真正代表 JDK 安装是否完整的关键指标
注意:两个命令输出的版本号应基本一致(如都是 17.0.1),否则说明环境混乱,可能混用了不同来源的 JRE 和 JDK。
查清 JDK 实际安装在哪
光知道版本不够,定位安装路径才能配置项目、IDE 或多版本管理:
- 先检查环境变量:echo $JAVA_HOME(Linux/macOS)或 echo %JAVA_HOME%(Windows)→ 若有输出,路径即为 JDK 根目录
- 若未设置 JAVA_HOME,可用 which java(Linux/macOS)或 where java(Windows)找到 java 可执行文件位置,再向上推两级目录(如
/usr/lib/jvm/java-17-openjdk-amd64/bin/java→ JDK 根目录是/usr/lib/jvm/java-17-openjdk-amd64) - 不推荐用
java -verbose查路径,该参数已废弃,行为不可靠
列出系统中所有已安装的 JDK
尤其在服务器或开发机上,常存在 OpenJDK、Oracle JDK、Zulu、Temurin 等多个发行版并存的情况:
- Linux(Debian/Ubuntu):update-alternatives --list java 和 update-alternatives --list javac
- Linux(RHEL/CentOS/Fedora):alternatives --display java
- macOS(使用 Homebrew 安装):brew list | grep openjdk,或查看
/opt/homebrew/opt/openjdk@17类似路径 - Windows:手动浏览常见安装目录,如
C:\Program Files\Java\,看有哪些 jdk-* 或 jre-* 文件夹
这些方法能帮你发现那些没被加入 PATH、但实际存在的 JDK,避免“以为只装了一个,其实藏着三个”。
用 Java 程序验证版本细节
当命令行结果模糊(比如显示 “17.0.1+12-LTS” 但不确定具体构建商),或需在脚本中自动提取信息时:
- 新建
VersionCheck.java,内容如下:
public static void main(String[] args) {
System.out.println("Java version: " + System.getProperty("java.version"));
System.out.println("Java vendor: " + System.getProperty("java.vendor"));
System.out.println("Java home: " + System.getProperty("java.home"));
System.out.println("JDK home: " + System.getProperty("java.home").replace("/jre", ""));
}
}
- 编译并运行:javac VersionCheck.java && java VersionCheck
- 输出包含厂商(如 Eclipse Adoptium、Amazon Corretto)、精确构建号和真实安装路径,比命令行更权威











