最权威验证方式是运行java -version和javac -version:前者确认JRE/JDK运行时环境就绪,后者验证JDK是否完整安装;若仅前者成功,说明可能只装了JRE或JDK的bin未加入PATH。

直接运行 java -version 看输出
这是最快速、最权威的验证方式。打开终端(Windows 用 CMD/PowerShell,macOS/Linux 用 Terminal),输入:
java -version
如果看到类似 java version "17.0.1" 或 openjdk version "21.0.2" 的输出,说明 java 命令已识别,JRE/JDK 运行时环境基本就绪。
注意:这个命令只校验 JAVA_HOME 是否被正确加入 PATH,不保证完整 JDK(比如 javac)可用。
必须检查 javac -version 才算 JDK 安装完整
javac 是 Java 编译器,只有安装了 JDK(而非仅 JRE)才存在。若 java -version 成功但 javac -version 报错 'javac' is not recognized(Windows)或 command not found(macOS/Linux),说明:
立即学习“Java免费学习笔记(深入)”;
- 你可能只安装了 JRE,不是 JDK
- 或者 JDK 已安装,但
bin目录没加进PATH - 某些 IDE 自带 JRE,会干扰终端实际环境
正确做法是确认 JDK 安装路径(如 /Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home 或 C:\Program Files\Java\jdk-21.0.2),然后把 $JAVA_HOME/bin(Linux/macOS)或 %JAVA_HOME%\bin(Windows)追加到 PATH。
检查 JAVA_HOME 环境变量是否指向 JDK 根目录
JAVA_HOME 不是 java 命令运行必需项,但几乎所有构建工具(Maven、Gradle)、IDE(IntelliJ、Eclipse)和脚本都依赖它。验证方法:
- Windows:
echo %JAVA_HOME%→ 应输出类似C:\Program Files\Java\jdk-21.0.2 - macOS/Linux:
echo $JAVA_HOME→ 应输出类似/opt/homebrew/opt/openjdk或/usr/lib/jvm/java-17-openjdk-amd64
关键点:该路径下必须包含 bin、lib、jre(或 conf)等子目录;若指向 jre 子目录或 jdk-xx.jdk/Contents/Home/jre,就是错的。
在 IDE 中看到 “No JDK specified” 或编译失败?别只信图形界面
IntelliJ 或 Eclipse 的项目 SDK 设置可能缓存旧路径,或自动选中 JRE 而非 JDK。即使终端里一切正常,IDE 仍可能报错:
- 检查项目结构(Project Structure → Project → Project SDK)是否明确指向 JDK 根目录(不是
bin,也不是jre) - 关闭 IDE 后删掉
.idea/misc.xml或.project中硬编码的 JDK 路径再重开 - 运行
mvn -v或gradle --version,看它们报告的 Java 版本是否与java -version一致 —— Maven/Gradle 默认读JAVA_HOME,这里不一致往往暴露环境割裂
最容易被忽略的是:同一台机器多个 JDK 共存时,java 和 javac 可能来自不同版本(比如 PATH 里先有 jdk8 的 bin,而 JAVA_HOME 指向 jdk21),这种隐性不一致会导致编译通过但运行失败。










