命令提示符启动带有.exe扩展名的“java.exe”,但不能没有.exe扩展名


6

今天我在使用cmd提示符在Windows上运行应用程序时遇到了一个问题。当我尝试运行程序时,我应该在程序名称的末尾添加扩展名,以便cmd可以识别它。

例如,当我运行“java -version”时,我收到以下错误:'Java'不被识别为内部或外部命令

但是当我将.exe添加到程序“java.exe -version”时,我得到了我的计算机上安装的java版本。

有没有解决这个问题的方法,因为许多其他程序依赖于没有exe扩展的java命令。

提前致谢


这与你的systme变量有关。您是否尝试过简单地重新安装Java?我已经确认它应该只是工作,这意味着你的系统配置应该受到责备。
Ramhound

1
这是所有命令的问题,如java,ftp,cmd,...
Samatix 2013年

键入where javawhere java.exe向我们展示的结果。我认为这将是一个PATH问题或PATHEXT问题。
kmort

Answers:


6

路径定义明确。我通过将.EXE添加到PATHEXT环境变量来解决我的问题。

非常感谢你的回答


2
奇怪的...通常.EXE默认包含在PATHEXT中。知道为什么/如何删除它?
jrista

2
也许是因为我安装了python(x,y)并将其删除(我在PATHEXT变量中只发现了.py和.pyc)或者可能是由于病毒造成的。
Samatix 2013年

3
确认PythonXY擦除USER PATHEXT内容。我以前有.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC,最后是.PY; .PYW补救措施是编辑它以包括.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY; .PYW
Arthur

2

此问题也发生,如果您的用户PATHEXT变量覆盖系统PATHEXT变量,无需扩展系统PATHEXT变量

前缀%PATHEXT%变量在用户PATHEXT变量来解决这个问题。

在此输入图像描述


0

接受的答案是正确的(PATHEXT问题)。如果其他人遇到这种情况,在我的情况下(Windows 8.1),PATHEXT就像这样:

.COM; .EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

换句话说,.EXE之前有一个空格,并且无法识别扩展名。删除空间有帮助,所以现在我可以java -version再次运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.