javac不被识别为内部或外部命令、可操作程序或批处理文件

javac不被识别为内部或外部命令、可操作程序或批处理文件,java,path,environment-variables,command-prompt,javac,Java,Path,Environment Variables,Command Prompt,Javac,我在编译Java程序时遇到一个错误 我在Windows上(这是Windows特有的问题),我安装了最新的JDK 我尝试了一个涉及PATH变量的解决方案,但错误仍然存在 控制台输出: C:\>set path=C:程序文件(x86)\Java\jdk1.7.0\bin C:\>javac Hello.java “javac”未被识别为内部或外部命令, 可操作的程序或批处理文件。 您输入了错误的set命令–您错过了C:之后的反斜杠。应该是: C:\>set path=C:\Program Files

我在编译Java程序时遇到一个错误

我在Windows上(这是Windows特有的问题),我安装了最新的JDK

我尝试了一个涉及
PATH
变量的解决方案,但错误仍然存在

控制台输出:

C:\>set path=C:程序文件(x86)\Java\jdk1.7.0\bin
C:\>javac Hello.java
“javac”未被识别为内部或外部命令,
可操作的程序或批处理文件。

您输入了错误的
set
命令–您错过了
C:
之后的反斜杠。应该是:

C:\>set path=C:\Program Files(x86)\Java\jdk1.7.0\bin
TL;博士 对于有经验的读者:

  • 找到Java路径;它看起来是这样的:
    C:\ProgramFiles\Java\jdkxxxx\bin\
  • “开始”菜单搜索“环境变量”以打开“选项”对话框
  • 检查路径。删除旧的Java路径
  • 将新Java路径添加到
    路径
  • 编辑
    JAVA\u HOME
  • 关闭并重新打开控制台/IDE

  • 欢迎光临

    您遇到了Java初学者面临的最臭名昭著的技术问题之一:
    'xyz'不能被识别为内部或外部命令…
    错误消息

    简而言之,您没有正确安装Java。在Windows上完成Java安装需要一些手动步骤。安装Java之后,包括升级JDK之后,必须始终执行这些步骤

    环境变量和路径 (如果您已经理解了这一点,请跳过下面三节。)

    运行
    javac HelloWorld.java
    时,cmd必须确定
    javac.exe
    的位置。这是通过环境变量
    PATH
    实现的

    是一种特殊的键值对(例如,
    windir=C:\WINDOWS
    )。大多数是随操作系统提供的,有些是系统正常运行所必需的。它们的列表在每个程序(包括cmd)启动时传递给它,有:用户环境变量和系统环境变量

    您可以看到如下环境变量:

    C:\>set
    ALLUSERSPROFILE=C:\ProgramData
    APPDATA=C:\Users\craig\APPDATA\Roaming
    CommonProgramFiles=C:\Program Files\Common Files
    CommonProgramFiles(x86)=C:\ProgramFiles(x86)\CommonFiles
    CommonProgramW6432=C:\Program Files\Common Files
    ...
    
    最重要的变量是。它是一个路径列表,由
    分隔。在cmd中输入命令时,将扫描列表中的每个目录以查找匹配的可执行文件

    在我的计算机上,
    路径是:

    C:\>echo%PATH%
    C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
    Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
    漫游\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
    msys64\mingw32\bin;C:\ProgramFiles\nodejs\;C:\ProgramFiles(x86)\Thread\bin\;C:\用户\
    craig\AppData\Local\Thread\bin;C:\ProgramFiles\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
    C:\Program Files\Oracle\VirtualBox;C:\ProgramFiles\7-Zip\;C:\ProgramFiles\PuTTY\;C:\
    程序文件\launch4j;C:\ProgramFiles(x86)\NSIS\Bin;C:\ProgramFiles(x86)\Common文件
    \Adobe\AGL;C:\Program Files\Intel\Intel(R)管理引擎组件\DAL;C:\程序
    文件\Intel\Intel(R)管理引擎组件\IPT;C:\Program Files\Intel\iCLS客户端\;
    C:\Program Files(x86)\Intel\Intel(R)管理引擎组件\DAL;C:\程序文件
    (x86)\Intel\Intel(R)管理引擎组件\IPT;C:\Program Files(x86)\Intel\iCLS
    客户\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
    
    运行
    javac HelloWorld.java
    时,当意识到
    javac
    不是一个时,cmd将搜索。它机械地输入列表中的每个目录,并检查是否存在。当它找到
    javac
    时,它运行它。如果没有,则打印
    “javac”不会被识别为内部或外部命令、可操作程序或批处理文件。

    必须将Java可执行文件目录添加到
    PATH

    JDK与JRE (如果您已经理解了这一点,请跳过本节。)

    下载Java时,您可以选择:

    • JRE包括运行Java程序所需的工具,但不包括编译新程序的工具,它包含
      Java
      ,但不包含
      javac
    • (JDK),它包含
      java
      javac
      ,以及许多其他开发工具。JDK是JRE的超集
    您必须确保已安装JDK。如果只安装了JRE,则无法执行
    javac
    ,因为硬盘上没有安装Java编译器。检查Windows程序列表,确保Java包的名称中包含“Development Kit”字样

    不要使用
    set
    (如果您不打算这样做,请跳过本节。)

    其他几个答案建议执行以下一些变体:

    C:\>::不要这样做
    C:\>set PATH=C:\Program Files\Java\jdk1.7.0\U 09\bin
    
    不要那样做。该命令存在几个主要问题:

  • 此命令
    PATH
    中删除所有其他内容
    ,并将其替换为Java路径。执行此命令后,您可能会发现其他各种命令不起作用
  • 您的Java路径可能不是
    C:\Program Files\Java\jdk1.7.0\u 09\bin
    ——您几乎肯定有一个较新版本的JDK,它会有一个不同的路径
  • 新的
    路径
    仅适用于当前cmd会话。你必须重新开始
    C:\ YourFolder >set path=C:\Program Files\Java\jdk1.7.0_09\bin;
    C:\ YourFolder >javac YourCode.java