javac无法在Windows命令提示符下工作

问题

我正在尝试使用Windows命令提示符javac,但它无法正常工作。

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

'javac'未被识别为内部或外部命令,可操作程序或批处理文件。


#1 热门回答(135 赞)

如果在命令提示符打开时将其添加到控制面板中,则不会影响当前的命令提示符。你需要退出并重新打开或只是执行以下操作:

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

通过检查,执行:

echo %path%

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

否则,通过尝试确保该目录中的isisa javac:

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

从命令提示符。你还可以通过命令告诉whoeexecutable(如果有):

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

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


#2 热门回答(85 赞)

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环境变量:

  • 控制面板⇒系统⇒高级系统设置
  • 切换到"高级"选项卡⇒环境变量
  • 在"系统变量"中,向下滚动以选择"路径"⇒编辑

((现在在继续之前阅读以下3次,,没有UNDO))

在"变量值"字段中,INSERT"c:\ Program Files \ Java \ jdk1.8.0_xx \ bin"(将xx替换为升级号,并验证这是你的JDK的二进制目录!!!)所有现有的FRONT目录,后跟一个分号(;),它将JDK的二进制目录与其余现有目录分开。不要删除任何现有条目;否则,某些现有应用程序可能无法运行。

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

Screenshot


#3 热门回答(31 赞)

经过漫长的谷歌,我才知道javac.exe必须在内JDK(C:\ Program Files \ Java \ jdk(版本号)\ bin)不在内部JRE(C:\ Program Files(x86)\ Java \ jre7 \ bin)**"JRE没有附带编译器。它(JRE)只是一个java运行时环境。你需要的是Java开发工具包。"**为了使用编译器javac

如果你将bin指向jre,javac将无法工作

为了在cmd中使用javac,必须在系统中安装JDK ...
对于javac path
path = C:\ Program Files(x86)\ Java \ jre7 \ bin这是错误的

path = C:\ Program Files \ Java \ jdk(版本号)\ bin这是正确的

确保"javac.exe"在**"C:\ Program Files \ Java \ jdk(版本号)\ bin"中**

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

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

JDK VS JREWhat is the difference between JDK and JRE?的参考线程