';java';命令正在工作,但';javac';don';T

';java';命令正在工作,但';javac';don';T,java,java-8,javac,Java,Java 8,Javac,我已经设置了路径变量 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 Serv

我已经设置了路径变量

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' is not recognized as an internal or external command,
operable program or batch file.
但当我输入'javac-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' is not recognized as an internal or external command,
operable program or batch file.
为什么javac不被认可


PS:我已经重新启动了几次电脑。

看起来您已经安装了不同版本的独立JRE和JDK,并且您的路径仅包括JRE的
bin
目录。您已经将
JAVA\u HOME
显示为包括版本1.8.0\u 101,但是您看到的
-version
输出显示为1.8.0\u 102,因此显然不是来自该安装

我建议查找并卸载1.8.0_101 JRE,然后更新
路径
,以便在JDK安装中包含两个
bin
目录。其中一个是
basepath\jdk\bin
,另一个是
basepath\jdk\jre\bin
。按顺序包括它们(JDK优先)。然后确保
JAVA\u HOME
指向该安装



刚刚在我手边的一台Windows机器上安装了JDK1.8.0_101,我可以确认它将JRE
bin
目录添加到路径中,但没有添加JDK
bin
目录。如果您希望JDK
bin
目录也位于路径中,请通过控制面板将
C:\Program Files\Java\jdk1.8.0\u 101\bin
添加到路径中(如有必要,请更改版本号)。

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

右键单击
my computer
,然后选择
properties

  • 在打开窗口的左侧,单击高级系统设置
  • 打开系统属性后,单击“高级”选项卡,然后单击“环境变量”。
  • Environment variables
    windows的
    System variables
    部分中,单击
    New
    按钮设置JAVA\u主页
  • 设置如下设置:
    变量名:JAVA_HOME
    变量值:C:\Java\jre1.8.0_92\;C:\Java\jdk1.8.0\u 92\
  • 在所有窗口中单击“确定”

  • 也可能需要在用户变量部分设置JAVA_HOME

    是否可以运行
    C:\ProgramFiles\JAVA\jdk1.8.0\u 101\bin\javac.exe-version
    ?能否将C:\Program Files\Java\jdk1.8.0\U 101\bin添加到PATH环境变量中。然后开始一个新的shell。您不需要重新启动。@pmcevoy12输出:'C:\Program'不被识别为内部或外部命令、可操作程序或批处理文件。@rohit15079:So:
    “C:\Program Files\Java\jdk1.8.0\u 101\bin\javac.exe”-version
    (请注意引号)。就像其他任何时候你有一个带有空格的文件名,并且想在命令行上使用它一样。@T.J.Crowder谢谢你的更正。@pmcevoy12现在,它会冻结1-2秒,然后再次出现提示。我已经完全删除了所有版本,并再次安装了jdk 1.8 102u。并添加了相同的路径。但是,问题仍然存在。@rohit15079:见上文。我发现这些带有屏幕截图的分步说明很有帮助