Javac 不能在命令提示符工作

我试着用 ABc0命令提示符但是不管用。

在将目录 "C:\Program Files\Java\jdk1.6.0_16\bin\"添加到 PATH环境变量的末尾之后,java命令可以正常工作,但是使用 javac会出现以下错误:

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

607468 次浏览

如果在打开命令提示符时将其添加到控制面板中,则不会影响当前命令提示符。你需要退出并重新打开,或者干脆这样做:

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"

通过检查,执行:

echo %path%

从您的命令提示符,并让我们知道它是什么。

否则,通过尝试确保该目录中有一个 javac:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"

您还可以告诉 哪个可执行文件(如果有的话)正在与命令一起使用:

for %i in (javac.exe) do @echo %~$PATH:i

这是一个与某些 UNIX 类型操作系统中的 which和/或 whence命令类似的巧妙技巧。

将其设置为“ C: Program Files Java jdk1.6.0 _ 16 bin”,删除反斜杠即可

我只是不得不这样做,让这个工作,在 Windows 764。

打开命令提示符(cmd.exe)并键入:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

确保重新打开所有运行中的命令提示窗口以获得更新的环境变量。

我知道这可能不是你的具体错误,但我曾经有一个领先空间在我的路径和 java 将工作,但 javac 不会。

不管怎样,我给你一个明智的建议: “仔细检查你的道路”。

Windows 操作系统会搜索 PATH 工作目录中列出的环境变量和目录中的可执行程序。JDK 的程序(比如 Java 编译器 javac.exe 和 Java 运行时 Java.exe)驻留在目录“ bin”中(其中表示 JDK 安装的目录,例如 C: Program Files Java jdk1.8.0 _ xx)。您需要在 PATH 中包含“ bin”目录。

编辑 Windows XP/Vista/7/8中的 PATH 环境变量:

  1. 系统设置

  2. 切换到“高级”选项卡的环境变量

  3. 在〔系统变量〕中,向下滚动以选择〔 PATH 〕牛顿编辑

((现在在继续之前阅读以下3次,没有回旋的余地))

在“变量值”字段中,插入“ c: Program Files Java jdk1.8.0 _ xx bin”(用升级号替换 xx,并且 VERIFY 表明这是您的 JDK 的二进制目录放在所有现有目录的前面,后面跟一个分号(;) ,它将 JDK 的二进制目录与现有目录的其余部分分隔开来。 不要删除任何现有的条目; 否则,一些现有的应用程序可能无法运行。

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Screenshot

当我试图。爪哇到。类的命令 Javac 不工作。我通过访问 C: Program Files (x86) Java jdk1.7.0 _ 04 bin 使它工作起来,当我在那个目录中时,我键入了 Javac.exe C Test Test.Java,它使用这种策略创建了这个类。试试看。

C: Program Files Javajdk1.6.0 bin“有时您可能会忘记在最后一个现有路径上放置分号。

好吧,这种情况不可能一直都存在,但是我们很多人过去都犯过这样的错误,而且很少有人还没有意识到这一点,也就是说,每次你添加一个路径(任何路径)的任何环境变量,你很可能会在“分号”之后点击空格键(正如你通常会在编辑器中输入“句点”之后点击空格键)。

这将在路径中创建一个前导空间,例如“ C: Program Files Java jdk1.6.0 bin”,因此系统找不到“ javac.exe”。

试试这里的解决方案: http://techdem.centerkey.com/2009/05/javahome-command-script.html

它们对于更改更加健壮——就像升级 JDK 或 JRE 时一样,因为没有硬编码的路径。

快速的解决方案(如果你不想读博客)是

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%

然后,您可以将这些代码行添加到启动/登录脚本中。

经过漫长的谷歌搜索,我才知道 javac.exe 将在 JDK(C: Program Files Java jdk (version number) bin)中,而不是在 JRE(C: Program Files (x86) Java jre7 bin) “ JRE 没有编译器。它(JRE)只是一个 JRE。你需要的是 JDK。”中,以便使用编译器 javac

如果路径指向 JRE文件夹中的 垃圾箱,javac 将无法工作

为了在 cmd 中使用 javac,必须在系统中安装 JDK..。

对于 javac 路径

Path = C: Program Files (x86) Java jre7 bin 这是错误的

Path = C: Program Files Java jdk (version number) bin 这是正确的

确保“ javac.exe”在 “ C: Program Files Java jdk (version number) bin”

不要混淆 JRE 和 JDK 两者是完全不同的

如果你没有 JDK 请从这个链接下载

Https://jdk.java.net/

或者

Http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK VS JRE JDK 和 JRE 有什么区别?的参考线程

我也有同样的问题贴在这个标题上。Java 可以工作,但是命令提示符 javac就不行了(cmd.exe)。

对我来说,我只是在我的环境变量的末尾加上了一个空格。
删除 ;和下一个文件路径之间的空白。

更改文件夹“ jdk1.7.0 _ 45”“ jdk1.7 _ 0 _ 60”并在 Windows 环境中更新路径。否则,路径将忽略前面代表隐藏文件的点,因此该文件夹不会显示在 PATH 字符串中。

我面临着与 java 完全相同的问题,但是 javac 不能在 Windows8的 cmd 提示符上工作。

出现问题是因为我忘记删除路径名末尾的 '>',也就是说,它是这样的:

C:\Program Files\Java\jdk*\bin>

本来应该是这样的:

C:\Program Files\Java\jdk*\bin

只为管理员帐户设置路径。因此,如果您还不是管理员,那么以管理员身份启动命令提示符非常重要。

确保在 Path 变量的路径之间不允许空格(空白)。我的问题是我有空白,我相信 Windows 把它作为一个 NULL,并没有读取我的路径在 Java。

我明白这是一个老问题了,但我的解决方案不是一个答案,所以把它贴在这里,以防其他人尝试所有的休息。

在我的例子中,以前安装的 Java JRE (在 ProgramData/Oracle/Java 中)在路径变量列表的顶部有一个路径变量。“ Oracle”路径的内容有 java.exe,但没有 javac.exe。 我将完整的 JDK 路径添加到路径变量列表的顶部,位于“ Oracle”变量之前,然后它选择了 javac.exe 和 java。

for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME

这个解决方案对我起作用了