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免费学习笔记(深入)”;
确认 JAVA_HOME 是否指向正确的 JDK 根目录
JAVA_HOME 是很多构建工具(如 Maven、Gradle)和 IDE(如 IntelliJ、Eclipse)依赖的关键环境变量。它必须指向 JDK 的安装根目录,而不是 bin 子目录。
检查方法:
- Windows:
echo %JAVA_HOME%
—— 应输出类似C:\Program Files\Java\jdk-21.0.2 - macOS/Linux:
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 的编译器,它的存在才代表完整 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) 显式指定。










