问题
我正在尝试使用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...]
#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?的参考线程