Java环境变量

3
所以我正在设置我的Windows 10计算机来编译Java,当我去查看环境变量时没有现有的路径,所以我添加了一个。当我在命令提示符中键入“javac”时,它能够识别它,但是当我尝试保存Java文件(在记事本中作为测试),并尝试将其放到命令提示符中时,我得到“不是内部或外部命令,可执行程序或批处理文件。” 这个错误信息。我找到的关于这个响应的所有信息都指回了环境变量,但是我弄不清楚我做错了什么。我的PATH如下:C:\ Program Files \ Java \ jdk1.8.0_77 \ bin。我是否缺少明显的东西?

1
你能提供你设置的位置和内容的截图吗? - Alok Gupta
4
你说的这句话我不太明白:“但是当我尝试保存一个Java文件(在记事本上作为测试),并尝试将其放入命令提示符中,我会收到“未被识别为内部或外部命令、可执行程序或批处理文件”的错误提示。”你具体做了什么? - S.B
1
要编译Java源代码文件,您需要执行以下操作:javac <SourceFileName.java>,要运行它,您必须发出命令java SourceFileName。只是保存文件并尝试执行它不起作用,无论您认为Java有多强大。您的PATH包含shell可以定位二进制文件(如javac、java等)的目录。 - MS Srikkanth
我输入了C:\cd\mywork和C:\mywork>;dir,结果相同。 - Ash
你显然不理解DOS,也没有编译Java类文件。请发布一些屏幕截图,让我们知道你是否在正确的目录下,并发布一些文件夹树的屏幕截图,清晰地显示你的Java文件所在位置。 - goncalopinto
这是文件树的截图: http://postimg.org/image/poxpmarr3/还有环境变量的截图: http://postimg.org/image/gxd03w2ph/ - Ash
4个回答

1

Environment Variables

在执行Java文件时,您需要在“环境变量”中设置两个变量。在图像中,您可以看到第一个变量(Java_Home)定义了系统中jdk的路径,而第二个变量则定义了Java可执行文件(javac.exe、java.exe、javadoc.exe等)所在的路径。按照这样做,您的问题将得到解决....


好的,我按照您说的做了,但是当我使用命令提示符查找它(javac mywork\HelloWorld.java)时,它显示文件未找到。这是我的文件树截图:http://postimg.org/image/poxpmarr3/ - Ash
同时,您没有使用正确的DOS命令......您无法使用命令找到文件:javac mywork\HelloWorld.java - Aditya kumar
你想对你的Java文件做什么? - Aditya kumar
1
从命令提示符处,通过输入以下cd 命令,导航到包含.java文件的目录,如 C:\introcs\helloC:\Users\username>cd c:\introcs\hello 然后在命令提示符窗口中会出现C:\introcs\hello\>。假设文件(如HelloWorld.java)位于当前工作目录中,则键入以下粗体 javac 命令进行编译。 C:\introcs\hello\>javac HelloWorld.java 如果一切正常,您将看不到错误消息。 - Aditya kumar
好的,我现在明白了,谢谢。它让我选择要用哪个程序打开它,所以看起来它能够找到它了。 - Ash
显示剩余4条评论

0

根据“未被识别为内部或外部命令”的消息,可能是您的PATH变量没有正确设置。您需要将JDK bin的完整路径添加到系统PATH变量中,在控制面板、系统、高级、环境变量中进行设置。有关详细信息,请参见https://docs.oracle.com/javase/tutorial/essential/environment/paths.html

虽然不太可能是您描述问题的原因,但您也可能需要设置CLASSPATH。PATH变量指示可执行文件所在的位置(例如,javac.exe和java.exe)。CLASSPATH变量指示类文件所在的位置。默认的CLASSPATH是当前工作目录。因此,如果您从与类(es)所在的相同目录执行,就不需要指定它。

运行“javac.exe yourprogram.java”来编译程序。然后运行“java yourprogram”来执行它。


这不是一个答案,因为用户遇到了“未被识别为内部命令”的问题。很可能是她的PATH变量有问题或者她做错了什么。如果是CLASSPATH的问题,那么错误会是另外一种形式。 - MS Srikkanth

0

只是为了澄清,您保存了您的Java类,比如说'Test.java',然后尝试通过命令提示符调用Test来运行它?您能具体解释一下您做了什么吗?

您需要使用javac编译该类,并使用java运行它。


如果你想让提问者更清楚地解释他/她的问题,那么你应该在评论中询问。不要在回答中这样做。 - MS Srikkanth
显然,我没有足够的声望在原帖中发表评论。 - java_maniac
抱歉...我的错...没有注意到...也许最好不回答,而是要求澄清...因为其他人已经问过这个问题,你不需要重复 :) - MS Srikkanth

0

如果您已经为计算机安装了兼容的JDK和JRE,并且想知道为什么计算机无法将“java”和“javac”识别为内部或外部命令,那么您可能没有正确设置环境变量。

Windows指南

转到计算机> C驱动器>程序文件> Java> JDK文件

右键单击路径,然后单击“编辑地址”。复制地址后,请按照以下步骤操作。

转到控制面板>系统和安全>系统>高级系统设置>环境变量

在第二列(系统变量)中,单击“新建...”

将“变量名称”设置为JAVA_HOME

将“变量值”设置为最近复制的内容,然后单击“确定”

在您所在的同一位置(系统变量),找到变量“Path”,然后单击“编辑...”

在“变量值”下,将光标移至开头并输入%JAVA_HOME%\bin;

单击两次“确定”,然后直接在桌面上右键单击并单击“刷新”

最后,打开命令提示符并键入关键字“java”和“javac”

我希望这对大多数人都有效。我已经试图解决这个问题大约一周了,我找到了一个很好的解决方案,想要分享一下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接