普通开发推荐下载jdk-xx_windows-x64_bin.exe安装包并勾选“Add to PATH”;需多版本共存则选.zip包手动配置JAVA_HOME和PATH,且务必验证javac -version与where命令结果一致。
Windows上装JDK,核心是避开jdk-xx_windows-x64_bin.exe和jdk-xx_windows-x64_bin.zip的混淆。前者是带自动配置向导的安装程序,后者是免安装压缩包——但很多人误以为“免安装=不用配环
境变量”,结果java -version报错。
.exe安装包:它默认把JDK装进C:\Program Files\Java\jdk-xx,且可勾选“Add to PATH”(但不建议勾选,原因见下条).zip包,解压到自定义路径如D:\jdk8、D:\jdk17,再手动配JAVA_HOME和PATH
LTS标识的才是长期支持版(如21.0.1或17.0.9),非LTS版(如22)半年后就停更,别在生产环境用Windows环境变量配置错误,90%出在JAVA_HOME值末尾多了反斜杠,或PATH里写了%JAVA_HOME%\bin却没先定义JAVA_HOME。
JAVA_HOME必须指向JDK根目录,不是bin子目录:正确值是C:\Program Files\Java\jdk-21.0.1,错误写法是C:\Program Files\Java\jdk-21.0.1\bin\
PATH中添加的是%JAVA_HOME%\bin,不是绝对路径;且这条必须放在PATH最前面,否则可能被旧版JRE的java.exe劫持echo %JAVA_HOME%和java -version双验证只跑java -version不够,它可能调用的是系统自带JRE而非你刚装的JDK。真正要确认的是编译器和工具链是否就位。
java -version:看运行时版本,输出应含jdk字样(如Java HotSpot(TM) 64-Bit Server VM 21.0.1)javac -version:必须能执行且版本号与java一致,否则JAVA_HOME或PATH配错了where java和where javac:Windows特有命令,分别列出所有匹配路径;两个命令返回的第一行路径应该完全相同,且都落在%JAVA_HOME%\bin下IDE不读系统环境变量,而是用自己的JDK配置。即使命令行一切正常,IDE也可能用错SDK。
+ → Add JDK → 选C:\Program Files\Java\jdk-21.0.1目录(不是bin)JAVA_HOME值一致;如果用了.zip包解压安装,就选解压后的完整文件夹,别选bin或jre子目录# 一个快速验证脚本(保存为check_java.bat,双击运行) @echo off echo === JAVA_HOME === echo %JAVA_HOME% echo. echo === java version === java -version echo. echo === javac version === javac -version echo. echo === where java === where java echo. echo === where javac === where javac pause
JDK安装本身不难,难的是环境变量和IDE配置之间存在两套独立逻辑,而且Windows对路径末尾反斜杠、空格、大小写不敏感等特性会掩盖真实问题。最容易被忽略的是:改完系统变量后没重启终端,或者IDE里选了JRE而不是JDK目录。