JDK 是运行和开发 Java 应用的必备环境,必须正确配置 JAVA_HOME 指向 JDK 根目录且 PATH 包含 %JAVA_HOME%\bin(Windows)或 $JAVA_HOME/bin(Linux/macOS),否则会出现命令未找到或类加载失败;验证需执行 java -version、javac -version 和 echo 命令确认版本与路径一致。

Java 运行环境(JRE)本身不需“安装”来运行已编译的 .jar 或 .class 文件,但实际开发和运行中,你真正需要的是 JDK(含 JRE),且必须正确配置 JAVA_HOME 和 PATH——否则 java、javac 命令会报“command not found”或“找不到或无法加载主类”。
为什么装了 JDK 还提示 java 不是内部或外部命令
常见原因是系统没把 JDK 的 bin 目录加进 PATH,或者 JAVA_HOME 指向了错误路径(比如指向 JRE 目录而非 JDK 根目录)。
-
JAVA_HOME必须设为 JDK 安装根目录(如C:\Program Files\Java\jdk-17.0.1或/usr/lib/jvm/jdk-17.0.1),不能是jdk-17.0.1\jre或jdk-17.0.1\bin -
PATH中需包含%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(Linux/macOS),且该条目要放在其他 Java 相关路径之前,避免旧版本干扰 - 设置后必须新开终端生效;IDE(如 IntelliJ)可能还需重启或手动刷新 SDK 配置
如何验证 JDK 是否装对、环境变量是否生效
别只信安装程序的“完成”弹窗。打开终端执行以下三步,缺一不可:
java -version javac -version echo $JAVA_HOME # Linux/macOS echo %JAVA_HOME% # Windows
理想输出应显示相同版本号(如 17.0.1),且 JAVA_HOME 路径与 java -XshowSettings:properties -version 2>&1 | grep java.home 输出一致。若 javac 报错而 java 正常,说明你装的是 JRE 而非 JDK。
立即学习“Java免费学习笔记(深入)”;
Windows 下 PATH 和 JAVA_HOME 设置实操要点
图形界面设置易出错:系统变量和用户变量混用、路径含空格未加引号、复制时带隐藏字符等。
- 推荐使用命令行一次性设置(管理员权限运行 PowerShell):
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Java\jdk-17.0.1', 'Machine') [System.Environment]::SetEnvironmentVariable('PATH', "$env:PATH;`%JAVA_HOME`%\bin", 'Machine') - 路径中含空格(如
Program Files)无需引号,但变量引用必须用%JAVA_HOME%\bin,不能写成"%JAVA_HOME%\bin" - 设置完务必在新 cmd/PowerShell 中运行
where java,确认返回的是JDK\bin\java.exe,而非Windows\System32\java.exe(那是 Windows 自带的旧版)
macOS/Linux 使用 sdkman 管理多 JDK 版本更可靠
手动改 /etc/profile 或 ~/.zshrc 容易冲突,尤其当你需要同时用 Java 8(Spring Boot 2.x)和 Java 17(Spring Boot 3.x)时。
- 安装 sdkman:
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"
- 列出可用版本:
sdk list java,安装指定版本:sdk install java 17.0.1-tem - 切换默认版本:
sdk default java 17.0.1-tem,它会自动更新JAVA_HOME和PATH - 注意:
sdk default只影响当前 shell;若希望全局生效,确保source命令已写入~/.zshrc
最常被忽略的一点:很多教程让你下载 “JRE” 安装包,但自 JDK 9 起,Oracle 已停止单独发布 JRE;OpenJDK 社区也不再提供独立 JRE 构建。你现在能合法获取并安全使用的,只有 JDK——它自带 JRE,且 java 命令就来自其中的 bin 目录。别再找“JRE 安装包”了。










