Как отправить пароль для обработки в Java - PullRequest
1 голос
/ 24 мая 2011

Я запускаю процесс из Java, чтобы запустить команду для меня. Этот процесс выполняется некоторое время, затем требуется пароль для продолжения. Теперь я знаю, что могу писать во входящий поток процесса, но я не совсем уверен, как определить, когда мне нужно писать в него.

Возможные решения:
Есть ли способ, которым я могу обнаружить, что процесс блокируется?
Могу ли я просто написать в стандарт сразу после выполнения команды, и когда процесс достигнет точки, когда ему это нужно, он сможет просто прочитать из нее?

Есть еще идеи?

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Нет необходимости определять, блокирует ли дочерний процесс или нет. Если дочерний процесс предназначен для блокировки до тех пор, пока ввод не будет передан ему через стандартный ввод, он будет блокироваться до тех пор, пока такой ввод не будет предоставлен.

Необходимо иметь в виду, что стандартные размеры буфера ввода, вывода и ошибок ограничены, и поэтому необходимо, чтобы дочерний процесс обрабатывал содержимое входного буфера, а родительский процесс обрабатывал содержимое буфера вывода и ошибок как можно скорее. Невыполнение этого требования приведет к зависанию дочернего процесса.

0 голосов
/ 24 мая 2011

Может быть, вам стоит обойти проблему runas, но не использовать runas. Google нашел мне это: http://www.source -code.biz / snippets / c / 1.htm Позволяет передать пароль во время выполнения ....

...