更换JDK后javac命令无法识别问题求助
javac未被识别的问题 我之前切换JDK版本时也踩过一模一样的坑,给你梳理几个最关键的排查和修复步骤,应该能搞定:
优先检查系统PATH变量的顺序
Windows的环境变量是按顺序查找的,如果旧的JDK9路径还留在PATH里,或者你的JDK1.8的bin目录位置靠后,就会导致系统找不到正确的javac。- 打开命令提示符,输入
echo %PATH%,查看输出里是否有C:\Program Files\Java\jdk1.8.0_161\bin(如果你的JDK安装在其他路径,替换成对应路径)。 - 如果这个路径不存在,直接添加到PATH的最前端;如果存在但位置靠后,把它移到所有其他Java相关路径的前面。
- 打开命令提示符,输入
确认JAVA_HOME的配置正确性
JAVA_HOME必须指向JDK的根目录,而不是bin子目录。比如正确的路径应该是C:\Program Files\Java\jdk1.8.0_161,而不是C:\Program Files\Java\jdk1.8.0_161\bin。
配置好后,建议把PATH里的JDK路径改成%JAVA_HOME%\bin,这样后续切换JDK版本只需要修改JAVA_HOME就行。
可以用echo %JAVA_HOME%验证路径是否正确。检查classpath变量是否冲突
JDK1.8及以后的版本,其实默认已经处理好了classpath的问题,不需要手动设置复杂的内容。如果你之前为JDK9设置过classpath,可能会和JDK1.8冲突:- 可以暂时清空classpath变量,然后重启命令行试试。
- 如果需要保留,建议设置为
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(开头的.代表当前目录,是运行Java程序时常用的配置)。
务必重启命令行(或电脑)
Windows的环境变量修改后,已经打开的命令提示符窗口不会自动加载新的变量,所以一定要关闭所有cmd窗口,重新打开再测试javac -version。如果还是不行,重启电脑确保变量完全生效。验证JDK本身是否正常
找到你的JDK1.8安装目录下的bin文件夹,直接在该文件夹的地址栏输入cmd打开命令行,然后运行javac -version。如果这里能正常输出版本号,说明JDK安装没问题,问题肯定出在环境变量上;如果还是不行,建议卸载当前JDK,重新下载官方的jdk1.8.0_161安装包再安装一次。
内容的提问来源于stack exchange,提问作者kattapillar

