JAVA_HOME必须指向JDK根目录而非JRE,因为JDK包含javac编译器、tools.jar等开发必需组件,而JRE仅支持运行已编译程序;若指向JRE,会导致javac命令未找到、Maven构建失败、IDE提示“No JDK configured”。

JAVA_HOME 必须指向 JDK,不能指向 JRE。
为什么必须是 JDK?
JDK(Java Development Kit)包含编译器 javac、调试工具、文档和开发所需全部资源;JRE(Java Runtime Environment)只提供运行已编译程序的能力,不含 javac 等开发工具。
多数构建工具(Maven、Gradle)、应用服务器(Tomcat)、IDE(IntelliJ、Eclipse)和 CI/CD 系统(Jenkins、GitHub Actions)都依赖 JAVA_HOME 找到 javac 和 tools.jar 等关键组件。若指向 JRE,会出现:
-
javac -version报错“命令未找到” - Maven 构建失败,提示 “Cannot run program 'javac'”
- IDE 提示 “No JDK configured” 或无法创建 Java 类
如何确认你装的是 JDK?
打开安装目录,检查是否存在以下结构:
立即学习“Java免费学习笔记(深入)”;
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 根目录下直接有
bin/、lib/、jre/(或jmods/)、conf/等子目录 -
bin/目录里同时存在java和javac(Windows 下为java.exe和javac.exe)
如果只有 java 没有 javac,说明你安装的是 JRE 或精简版运行时,需卸载并重新下载带 “JDK” 字样的官方安装包。
JAVA_HOME 的正确写法
路径必须是 JDK 的根目录,不是 bin,也不是 jre,结尾不加斜杠,也不含空格或中文:
- ✅ 正确:
C:\jdk-17.0.2、/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home、/usr/lib/jvm/java-17-openjdk-amd64 - ❌ 错误:
C:\jdk-17.0.2\bin、C:\Program Files\Java\jre-17.0.2、/usr/bin/java
验证是否配置成功
打开全新终端(旧窗口不会自动加载新变量),依次执行:
-
echo $JAVA_HOME(macOS/Linux)或echo %JAVA_HOME%(Windows)→ 应输出你设置的 JDK 根路径 -
java -version和javac -version→ 两者版本号必须完全一致(如都是 17.0.2)
两个命令都成功且版本一致,才代表 JAVA_HOME 配置真正生效。

















