3

尝试执行 java.exe 并得到可爱的错误

>> sh.exe": java.exe: command not found

该命令在普通命令 shell 中工作。

我检查了两者的路径,它们几乎相同,bash 有一些预期的额外目录。我用env |grep PATHset 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 的源文件夹中至少有 1 个位于路径中。

4

2 回答 2

7

Gitbash 寻找 %PATH% 变量。在你的 gitbash 类型上:

env | grep PATH

并检查它是否包含您的 jdk 的 bin 目录的路径。如果没有,那么您必须自己添加路径。有关如何添加它的更多信息,请点击此链接:http ://www.java.com/en/download/help/path.xml

于 2013-06-13T18:31:32.860 回答
2

虽然修改系统 PATH 可能会解决您的问题,但它并不能解释为什么子进程看不到连接的用户 PATH。

我在使用 Git Bash 时遇到了同样的问题,最终发现这是由于我的用户 PATH 包含以下内容:%VPROJECT%..\bin; ...但我没有 VPROJECT 环境变量 - 不知何故,这导致用户 PATH 到系统 PATH 的连接对于子进程静默失败(尽管奇怪的是它并没有影响初始 bash shell,增加了查找的难度问题)。

我不知道这应该归咎于谁 - 这是 git-bash.exe、bash.exe 和 sh.exe 中的一个或多个没有应对。当然,无论添加该路径而不添加相应的环境变量(或者可能删除环境变量而不删除路径)。

于 2016-02-18T13:32:17.520 回答