“不是内部或外部命令”是因未配置Java环境变量,需先确认JDK安装目录含java.exe和javac.exe,再设置JAVA_HOME指向JDK根目录,最后将%JAVA_HOME%\bin添加至Path,并重启CMD验证。

你在Windows 10命令行里输入java或javac,却提示“不是内部或外部命令”,说明系统根本没找到Java可执行文件——这不是Java没装好,而是Windows不知道它藏在哪,得靠环境变量这张“地图”来指路。
确认JDK是否真已安装
先别急着改环境变量,打开文件资源管理器,手动进入你当初安装JDK的目录(比如E:\Program Files\Java\jdk-17.0.2),展开bin文件夹,确认里面存在java.exe和javac.exe两个文件。如果连这两个文件都没有,说明安装过程可能被跳过或中断,需重新下载JDK并完整安装。
这一步不能省——有人点下一步太快,选了“仅JRE”或勾错了组件,结果装了个不能编译的半成品。
设置JAVA_HOME系统变量
右键“此电脑”→属性→高级系统设置→环境变量→在“系统变量”区域点击“新建”。
变量名填JAVA_HOME,变量值填你刚才确认过的JDK根目录完整路径,例如:E:\Program Files\Java\jdk-17.0.2。
【注意:路径末尾不能带\bin,也不能加反斜杠或分号】
立即学习“Java免费学习笔记(深入)”;
填错会导致后续所有引用失效。很多人复制粘贴时多按了一个\,或者把C:\Program Files\Java\jdk-17.0.2\写成C:\Program Files\Java\jdk-17.0.2\bin\,结果%JAVA_HOME%\bin就变成了...\jdk-17.0.2\bin\bin,系统当然找不到。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
把JDK的bin目录加入Path
仍在“环境变量”窗口,在“系统变量”列表中找到Path,双击编辑→点击“新建”→输入:%JAVA_HOME%\bin。
不要手输完整路径,也不要加;%JAVA_HOME%\jre\bin——JDK 9之后jre已合并进jdk,再加这一条反而可能引入冲突路径;更不要在末尾多加分号,Win10对Path末尾分号极其敏感,一个多余符号就能让整个路径失效。
完成这一步后,必须关闭所有已打开的CMD窗口,再新开一个——旧窗口不会自动读取新环境变量。
验证是否生效
打开全新CMD窗口,依次执行三行命令:
① echo %JAVA_HOME% → 应精确返回你设置的JDK根路径;
② path → 查看输出中是否包含%JAVA_HOME%\bin对应的实际路径(如E:\Program Files\Java\jdk-17.0.2\bin);
③ java -version 和 javac -version → 两行都应显示版本号,且版本一致。
如果java能用但javac报错,大概率是Path里混进了其他Java残留路径(比如旧版JRE的C:\Program Files (x86)\Common Files\Oracle\Java\javapath),把它从Path里删掉即可。


















