2013-04-17 1 views
2

Попытки выполнить java.exe и получение прекрасной ошибкеGit Bash оболочка не может найти java.exe

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

работает команду в обычной командной оболочке.

Я проверил путь обоих, и они почти одинаковы, у 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: 

Я полагаю, что я что-то тонкое отсутствует, у кого-нибудь какие идеи?

У меня есть фрагмент пути, чтобы сделать его немного легче читать ... Однако по крайней мере 1 из исходных папок для java.exe находится на пути.

+0

У меня также возникает эта проблема. У кого-нибудь есть идеи? –

ответ

6

Gitbash ищет переменную% PATH%. На вашем gitbash типа:

env | grep PATH 

и проверить, если он содержит путь к директории бен вашей JDK в. Если этого не произойдет, вам придется добавить путь самостоятельно. Для получения дополнительных сведений о том, как добавить его, перейдите по этой ссылке: http://www.java.com/en/download/help/path.xml

+2

Оказывается, существует различие между системным пользователем PATH и зарегистрированными переменными PATH пользователя. Java была на пути пользователя, а не системы, а переменная PATH системы - та, которая появляется. Не знаю, почему, но добавление Java в систему PATH сработало. – Shire

+0

@Shire Возможно, вы должны добавить это как отдельный ответ :) – kaiser

+0

Чтобы вывести это в свой собственный ответ, я бы хотел ответить, почему gitbash его использует системный PATH вместо зарегистрированной переменной PATH пользователя. Я все еще смущен этим, просто не нашел времени, чтобы понять это. – Shire

2

При изменении системы PATH может обойти вашу проблему, это не объясняет, почему дочерний процесс не видит связанного пользователя PATH.

У меня была такая же проблема с Git Bash, и в итоге я обнаружил, что это связано с моим пользователем PATH, содержащим это: % VPROJECT% .. \ bin; ... но у меня не было переменной окружения VPROJECT - это как-то вызвало конкатенацию пользовательского PATH на систему PATH, чтобы бесшумно сбой для дочерних процессов (хотя это странно не повлияло на исходную оболочку bash, что добавило сложности нахождение проблемы).

Я не знаю, кто виноват в этом - это один или несколько из git-bash.exe, bash.exe и sh.exe, которые не справляются. И, конечно же, что бы добавить этот путь, не добавляя соответствующую переменную среды (или, возможно, любую удаляемую переменную окружения без удаления пути).