java -version可用且输出版本号说明JRE已配置;javac可用且与java版本一致才代表JDK完整安装,需确保JAVA_HOME指向JDK根目录且PATH包含其bin路径。
java -version 命令是否可用这是最直接的验证方式。打开终端(Windows 用 CMD/PowerShell,macOS/Linux 用 Terminal),输入:
java -version
如果输出类似 java version "17.0.1" 或 openjdk version "21.0.2",说明 java 可执行文件已加入系统路径且能被识别。
常见失败现象:
'java' is not recognized as an internal or external command(Windows)command not found: java(macOS/Linux)这通常不是 JDK 没装,而是 JAVA_HOME 未配置或 PATH 没包含 %JAVA_HOME%\bin(Windows)或 $JAVA_HOME/bin(macOS/Linux)。
JAVA_HOME 是否指向正确的 JDK 根目录JAVA_HOME 是很多构建工具(如 Maven、Gradle)和 IDE(如 IntelliJ、Eclipse)依赖的关键环境变量。它必须指向 JDK 的安装根目录,而不是 bin 子目录。
检查方法:
echo %JAVA_HOME%—— 应输出类似
C:\Program Files\Java\jdk-21.0.2
echo $JAVA_HOME—— 应输出类似
/Library/Java/JavaVirtualMachines/jdk-21.0.2.jdk/Contents/Home
错误示例:
JAVA_HOME=C:\Program Files\Java\jdk-21.0.2\bin ❌(多了 \bin)JAVA_HOME=/usr/bin/java ❌(这是软链接,不是 JDK 根目录)验证路径有效性:在该路径下应能看到 bin、lib、jre(旧版)或 conf(JDK 9+)等标准子目录。
javac 编译一个简单类来验证开发环境完整性java -version 只说明 JRE 运行时存在;而 javac 是 JDK 的编译器,它

实操步骤:
Hello.java,内容为:public class Hello { public static void main(String[] args) { System.out.println("OK"); } }javac Hello.java—— 成功则生成
Hello.class
java Hello—— 输出
OK
若 javac 报错 command not found,但 java -version 正常,大概率是安装了 JRE 而非 JDK,或安装包选错了(例如下载了 “JRE” 而非 “JDK”)。
java 和 javac 的版本是否一致有时系统中存在多个 Java 版本,java 和 javac 可能来自不同 JDK,导致编译通过但运行出错(如 UnsupportedClassVersionError)。
检查方式:
java -version
javac -version
两者输出的主版本号必须一致(如都是 21)。不一致时,优先以 JAVA_HOME 配置为准,并确保 PATH 中 %JAVA_HOME%\bin 或 $JAVA_HOME/bin 排在其他 Java 路径之前。
macOS 用户尤其要注意:系统可能自带 /usr/bin/java,但它只是代理,实际行为由 /usr/libexec/java_home 控制,建议用
/usr/libexec/java_home -V查看所有已注册 JDK,并用
export JAVA_HOME=$(/usr/libexec/java_home -v 21) 显式指定。