'java' 命令有效,但 'javac' 无效

'java' command is working but 'javac' don't

我已经设置了路径变量。

Variable: JAVA_HOME
Value: C:\Program Files\Java\jdk1.8.0_101
Path: C:\ProgramData\Oracle\Java\javapath;

当我执行命令'java -version'时,输出是

java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

但是当我输入 'javac -version' 时,输出是

'javac' is not recognized as an internal or external command,
operable program or batch file.

为什么javac ic无法识别?

PS: 我已经重启电脑好几次了

您似乎同时安装了不同版本的单独 JRE 和 JDK,并且您的路径仅包含 JRE 的 bin 目录。您已将 JAVA_HOME 显示为包含版本 1.8.0_101,但您看到的 -version 输出显示为 1.8.0_102,因此显然不是来自该安装。

我建议找到并卸载 1.8.0_101 JRE,然后更新您的 PATH 以在 JDK 安装中包含两个 bin 目录。其中一个是 basepath\jdk\bin,另一个是 basepath\jdk\jre\bin。按顺序包括它们(JDK 首先)。然后确保 JAVA_HOME 指向该安装。


刚刚在 Windows 机器上安装了 JDK 1.8.0_101,我可以确认它添加了 JRE bin 目录到路径但是不是 JDK bin 目录。如果您还想在路径中包含 JDK bin 目录,请通过控制面板将 C:\Program Files\Java\jdk1.8.0_101\bin 添加到 PATH(必要时更改版本号)。

如果 java 命令正在运行并且 javac 出现问题。然后先查看jdk的bin目录下的javac.exe文件有没有。如果存在 javac.exe 文件,则将 JAVA_HOME 设置为系统变量。

右键单击 my computer 和 select properties

  1. 在打开的左侧 window 点击 Advanced system settings
  2. 打开系统属性后,单击 Advanced 选项卡,然后单击 Environment Variables..
  3. Environment VariablesSystem variables 部分 windows 通过单击 New 按钮设置 JAVA_HOME。
  4. 设置以下设置:
    变量名称:JAVA_HOME
    变量值:C:\Java\jre1.8.0_92\;C:\Java\jdk1.8.0_92\
  5. 全部点击确定Window

也许还需要在用户变量部分设置 JAVA_HOME