2013-07-12 3 views
0

Я хочу использовать "which hoge" для получения пути для hoge в Java-коде.Хотите получить стандартный вывод или ошибку при использовании процесса

, когда «Хог» существует, путь может быть получен Process#getInputStream.

, но когда «Хог» не существует, и входной поток и поток ошибок из Process#get(Input|Error)Stream с получением "null".

но в терминале (OS X), если я попробую «какие-то неисследованные», я получаю «неисповедителей».

, где появляется сообщение «Эксперименталы не найдены»? Как я могу это получить?

Использует ли Java другое «что»?

+0

Я думаю, вам может понадобиться выполнить команду через оболочку – MadProgrammer

ответ

1

Ваша оболочка, вероятно, имеет «который» в качестве встроенной команды, поэтому она не использует программу/bin/which. Между ними, вероятно, много различий. Вы можете проверить, что вы используете с командой «type which» и использовать программу вместо встроенной команды, используя/bin/which.

Из Java вы можете узнать, был ли найден результат, путем проверки статуса завершения процесса, возвращаемого Process.waitFor(). Если статус равен 0, который нашел совпадение, если ненулевое значение не было или возникла какая-либо другая ошибка.

+0

Спасибо. Ты прав. «который» на терминале является встроенной командой. –

+0

и который используется Java - это/usr/bin /, который ничего не говорит, если hove не существует. –

Смежные вопросы