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

javac不被识别为内部或外部命令,可 *** 作程序或批处理文件,第1张

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

TL; DR

对于有经验的读者:

  1. 查找Java路径;它看起来像这样:C:Program FilesJavajdkxxxxbin
  2. 在开始菜单中搜索“环境变量”以打开选项对话框。
  3. 检查PATH。删除旧的Java路径。
  4. 将新的Java路径添加到PATH。
  5. 编辑JAVA_HOME。
  6. 关闭并重新打开控制台/ IDE。

你遇到了Java初学者面临的最臭名昭著的技术问题之一:

'xyz' is not recognized as an internal or external command
…错误消息。

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

环境变量和 PATH

(如果你已经了解这一点,请随时跳过接下来的三个部分。)

运行时

javac HelloWorld.java
,cmd必须确定
javac.exe
位置。这是通过PATH环境变量来完成的。

的环境变量是一个特殊的键-值对(例如

windir=C:WINDOWS
)。大多数是 *** 作系统附带的,有些是正常运行所必需的。它们的列表在启动时传递给每个程序(包括cmd)。在Windows上,有两种类型:用户环境变量和系统环境变量。

你可以看到这样的环境变量:

C:>setALLUSERSPROFILE=C:ProgramDataAPPDATA=C:UserscraigAppDataRoamingCommonProgramFiles=C:Program FilesCommon FilesCommonProgramFiles(x86)=C:Program Files (x86)Common FilesCommonProgramW6432=C:Program FilesCommon Files...

最重要的变量是PATH。它是路径列表,以分隔;。在cmd中输入命令时,将扫描列表中的每个目录以查找匹配的可执行文件。

在我的计算机上PATH是:

C:>echo %PATH%C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:ProgramDataMicrosoftWindowsStart MenuPrograms;C:UserscraigAppDataRoamingMicrosoftWindowsStart MenuPrograms;C:msys64usrbin;C:msys64mingw64bin;C:msys64mingw32bin;C:Program Filesnodejs;C:Program Files (x86)Yarnbin;C:UserscraigAppDataLocalYarnbin;C:Program FilesJavajdk-10.0.2bin;C:ProgramFilesGitcmd;C:Program FilesOracleVirtualBox;C:Program Files7-Zip;C:Program FilesPuTTY;C:Program Fileslaunch4j;C:Program Files (x86)NSISBin;C:Program Files (x86)Common FilesAdobeAGL;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:ProgramFilesIntelIntel(R) Management Engine ComponentsIPT;C:Program FilesInteliCLS Client;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files(x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)InteliCLSClient;C:UserscraigAppDataLocalMicrosoftWindowsApps

当你运行

javac HelloWorld.javacmd
时,当意识到这javac不是内部命令时,将在用户之后搜索系统PATHPATH。它机械地进入列表中的每个目录中,并且如果检查
javac.com,javac.exe,javac.bat
等的存在。找到时
javac
,它将运行它。如果没有,则打印
'javac' is not recognized as an internal or external command, operable program or batch file.

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

JDK与JRE

(如果你已经了解这一点,请随时跳过本节。)

下载Java时,可以选择以下选项:

在Java运行时环境(JRE),其中包括必要的工具来运行Java程序,但不编译新的-它包含java但不是javac。
在Java开发工具包(JDK),它同时包含java和javac,与其他开发工具主机一起。JDK是JRE的超集。
你必须确保已安装JDK。如果仅安装了JRE,则无法执行,javac因为硬盘驱动器上没有安装Java编译器。检查Windows程序列表,并确保Java软件包的名称中包含“ Development Kit”字样。

不要使用 set

(如果你仍然没有计划,请随时跳过本节。)

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

C:>:: DON'T DO THISC:>set PATH=C:Program FilesJavajdk1.7.0_09bin

不要那样做。该命令有几个主要问题:

  1. 此命令从中擦除所有其他内容,
    PATH
    并将其替换为Java路径。执行此命令后,你可能会发现其他各种命令不起作用。
  2. 你的Java路径可能不是
    C:Program FilesJavajdk1.7.0_09bin
    –几乎可以肯定的是,你拥有的JDK的更新版本将具有不同的路径。
  3. 新内容PATH 仅适用于当前的cmd会话。set每次打开“命令提示符”时,你将不得不重新输入命令。
    点#1和#2可以解决这个更好的版本:
C:>:: DON'T DO THIS EITHERC:>set PATH=C:Program FilesJava<enter the correct Java folder here>bin;%PATH%

但这通常是一个坏主意。

查找Java路径

正确的方法始于查找Java的安装位置。这取决于你如何安装Java。

exe安装程序

你已经通过运行安装程序安装了Java。Oracle的安装程序将Java版本放在

C:Program FilesJava(或C:Program Files (x86)Java)
下。使用文件资源管理器或命令提示符,导航到该目录。

每个子文件夹代表一个Java版本。如果只有一个,那么你已找到它。否则,请选择看起来较新的版本。确保文件夹名称以开头jdk(而不是jre)。输入目录。

然后输入该bin目录。

你现在位于正确的目录中。复制路径。如果在文件资源管理器中,请单击地址栏。如果在命令提示符下,请复制提示。

生成的Java路径应采用(不带引号)的形式:

C:Program FilesJavajdkxxxxbin

压缩文件
你已经下载了包含JDK的.zip。将其提取到不会妨碍你的位置;

C:Java
是可以接受的选择。

然后在其中找到该bin文件夹。

你现在位于正确的目录中。复制其路径。这是Java路径。

切记不要移动文件夹,因为那样会使路径无效。

打开设置对话框

那是要编辑的对话框PATH。进入该对话框的方式有很多,具体取决于你的Windows版本,UI设置以及系统配置的混乱程度。

尝试其中的一些:

  • 开始菜单/任务栏搜索框»搜索“环境变量”
  • + R» control sysdm.cpl,,3
  • Win + R» SystemPropertiesAdvanced.exe»
    环境变量
  • 文件浏览器»在地址栏中输入Control PanelSystem and SecuritySystem»高级系统设置(最左侧,在侧边栏中)»环境变量
  • 桌面»右键单击此PC»属性»高级系统设置»环境变量
  • 开始菜单»右键单击计算机»属性»高级系统设置»环境变量
  • 控制面板(图标模式)»系统»高级系统设置»环境变量
  • 控制面板(类别模式)»系统和安全性»系统»高级系统设置»环境变量
  • 桌面»右键单击我的电脑»高级»环境变量
  • 控制面板»系统»高级»环境变量

这些中的任何一个都应带你到正确的设置对话框。

如果你使用的是Windows 10,Microsoft会为你提供一个精美的新UI进行编辑,为你祝福PATH。否则,你会看到PATH它充满了分号,充满了荣耀,并挤进了单行文本框中。尽最大努力进行必要的编辑,而不会破坏系统。

Clean PATH

看看PATH。你几乎肯定有两个PATH变量(因为用户环境变量与系统环境变量有关)。你需要同时查看它们。

检查其他Java路径并将其删除。它们的存在会引起各种冲突。(例如,如果你PATH按该顺序在JRE 8和JDK 11中,javac则将调用Java 11编译器,该Java 11编译器将创建55版.class文件,但是java将调用Java 8 JVM,该Java 8 JVM仅支持最高52版,并且你将遇到不受支持的版本错误,并且无法编译和运行任何程序。)通过确保在中只有一个Java路径来回避这些问题PATH。在使用它的同时,你也可以卸载旧的Java版本。请记住,你不需要同时拥有JDK和JRE。

如果有C:ProgramDataOracleJavajavapath,也将其删除。Oracle旨在通过创建始终指向最新Java安装的符号链接来解决升级后Java路径中断的问题。不幸的是,它常常最终指向错误的位置或根本不起作用。最好删除此条目并手动管理Java路径。

现在也是进行一般家政服务的好机会PATH。如果你的PC上不再有与软件相关的路径,则可以将其删除。你也可以调整周围路径的顺序(如果你关心类似的事情)。

Add to PATH

现在,采用你在三个步骤之前找到的Java路径,并将其放置在系统中PATH。

你的新路径在列表中的位置并不重要;将其放在最后是一个不错的选择。

如果你使用的是Windows 10之前的用户界面,请确保已正确放置分号。列表中的每个路径都应该有一个正确的分隔符。

这里真的没有什么要说的了。只需添加路径PATH并单击“确定”即可。

JAVA_HOME

当你使用它时,你也可以进行设置

JAVA_HOME
。这是另一个环境变量,也应包含Java路径。如果未正确设置,许多Java和非Java程序(包括流行的Java构建系统Gradle)都会引发错误。

如果

JAVA_HOME
不存在,请将其创建为新的系统环境变量。将其设置为你添加到的相同Java路径PATH。

记住,

JAVA_HOME
升级Java后也要进行编辑。

关闭并重新打开命令提示符

尽管你已进行了修改

PATH
,但所有正在运行的程序(包括cmd)都只能看到旧版本PATH。这是因为所有环境变量的列表仅在开始执行时才复制到程序中。此后,它仅查询缓存的副本。

没有刷新cmd的环境变量的好方法,因此只需关闭命令提示符并再次打开即可。如果你使用的是IDE,也请关闭并重新打开它。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5004051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存