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

Dom*_*nic 129 java windows javac command-prompt

我正在尝试使用javacWindows命令提示符,但它不起作用.

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

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

pax*_*blo 156

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

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"
Run Code Online (Sandbox Code Playgroud)

通过检查,执行:

echo %path%
Run Code Online (Sandbox Code Playgroud)

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

否则,请确保在试图通过该目录的javac:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"
Run Code Online (Sandbox Code Playgroud)

从命令提示符.您还可以使用该命令判断正在使用哪个可执行文件(如果有):

for %i in (javac.exe) do @echo %~$PATH:i
Run Code Online (Sandbox Code Playgroud)

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

  • 啊,是的,我所要做的就是重新打开命令提示符,它工作正常,谢谢! (11认同)

小智 86

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. 在"系统变量"中,向下滚动以选择"路径"⇒编辑

((现在在继续之前阅读以下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...]
Run Code Online (Sandbox Code Playgroud)

截图


Tec*_*Dog 34

经过漫长的谷歌,我才知道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 = 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请从这个链接下载http://www.oracle.com/technetwork/java/javase/downloads/index.html

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


Sam*_*Sam 6

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

为了它的价值,我提供了圣人的建议:"仔细检查你的道路".


Mal*_*sai 5

好吧,情况并非总是如此,但我们中的许多人过去都犯过这个错误,其中很少有人仍然没有意识到这一点,也就是说,每次附加任何环境变量的路径(任何路径)时,您' 很可能会在“分号”之后立即按下空格键(就像您通常在编辑器中键入时在“句点”之后一样)。

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


Jas*_*son 5

请尝试以下解决方案: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%
Run Code Online (Sandbox Code Playgroud)

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

  • 为了调用javac,我必须使用"set PATH =%PATH%;%JAVA_HOME%\ bin"(注意添加的\ bin). (2认同)