尝试执行java.exe并获得可爱的错误
>> sh.exe": java.exe: command not found
该命令在普通的命令shell中运行。
我已经检查了两者的路径,它们几乎相同,bash有一些预期的额外目录。我分别用env |grep PATH
和set PATH
来检查......
where java.exe
C:\Windows\System32\java.exe
set PATH
Path=C:\Ruby193\bin;C:\Windows\system32;C:\Windows;
env |grep PATH
HOMEPATH=\
PATH=/c/Users/hooksc/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/Ruby193/bin:/c/Windows/system32:/c/Windows:
我想我错过了一些微妙的东西,任何人都有什么想法?
我将路径缩短以使其更容易阅读...但是,java.exe中至少有一个源文件夹位于路径中。
答案 0 :(得分:7)
Gitbash查找%PATH%变量。在你的gitbash类型:
env | grep PATH
并检查它是否包含jdk bin目录的路径。如果没有,那么你必须自己添加路径。有关如何添加它的更多信息,请点击此链接:http://www.java.com/en/download/help/path.xml
答案 1 :(得分:2)
虽然修改系统PATH可能会解决您的问题,但它并不能解释为什么子进程看不到连接的用户PATH。
我和Git Bash有同样的问题,最终发现这是由于我的用户PATH包含这个: %VPROJECT%.. \ BIN; ...但是我没有VPROJECT环境变量 - 不知怎的,这导致用户PATH与系统PATH串联而无法为子进程无效(尽管奇怪的是它并没有影响初始bash shell,增加了查找的难度问题)。
我不知道应该责怪谁 - 这是git-bash.exe,bash.exe和sh.exe中的一个或多个没有应对。当然,无论添加相应的环境变量(或者可能在不删除路径的情况下移除环境变量的任何内容)添加该路径,无论是什么。