Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class Process extends Object
ProcessBuilder.start()
и Runtime.exec
методы создают собственный процесс и возвращают экземпляр подкласса Process
это может использоваться, чтобы управлять процессом и получить информацию об этом. Класс Process
обеспечивает методы для того, чтобы они выполнили ввод от процесса, выполняя вывод к процессу, ожидая процесса, чтобы завершиться, проверяя статус выхода процесса, и уничтожая (уничтожение) процесса. Методы, которые создают процессы, возможно, не работают хорошо на специальные процессы на определенных собственных платформах, таких как собственная работа с окнами обрабатывает, процессы демона, процессы Win16/DOS на Microsoft Windows, или сценарии оболочки.
По умолчанию у создаваемого подпроцесса нет своего собственного терминала или консоли. Весь его стандартный ввод-вывод (то есть stdin, stdout, stderr) операции будут перенаправлены к родительскому процессу, где к ним можно получить доступ через потоки, полученные, используя методы getOutputStream()
, getInputStream()
, и getErrorStream()
. Родительский процесс использует эти потоки, чтобы подать ввод к и быть выведенным от подпроцесса. Поскольку некоторые собственные платформы только обеспечивают ограниченный размер буфера для стандартных потоков входа и выхода, отказ быстро записать, что входной поток или считать поток вывода подпроцесса может заставить подпроцесс блокировать, или даже мертвая блокировка.
Где требующийся, ввод-вывод подпроцесса может также быть перенаправлен, используя методы ProcessBuilder
класс.
Подпроцесс не уничтожается, когда нет больше ссылок на Process
объект, а скорее подпроцесс продолжают выполняться асинхронно.
Нет никакого требования что процесс, представленный a Process
объект выполняется асинхронно или одновременно относительно процесса Java, которому принадлежит Process
объект.
С 1.5, ProcessBuilder.start()
привилегированный способ создать a Process
.
Конструктор и Описание |
---|
Process() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract void |
destroy()
Уничтожает подпроцесс.
|
abstract int |
exitValue()
Возвращает значение выхода для подпроцесса.
|
abstract InputStream |
getErrorStream()
Возвращает входной поток, соединенный с выводом ошибок подпроцесса.
|
abstract InputStream |
getInputStream()
Возвращает входной поток, соединенный с нормальным выводом подпроцесса.
|
abstract OutputStream |
getOutputStream()
Возвращает поток вывода, соединенный с нормальным вводом подпроцесса.
|
abstract int |
waitFor()
Заставляет текущий поток ожидать, в случае необходимости, до процесса, представленного этим
Process объект завершился. |
public abstract OutputStream getOutputStream()
Process
объект. Если стандартный ввод подпроцесса был перенаправлен, используя ProcessBuilder.redirectInput
тогда этот метод возвратит нулевой поток вывода.
Примечание реализации: Это - хорошая идея для возвращенного потока вывода, который будет буферизован.
public abstract InputStream getInputStream()
Process
объект. Если стандартный вывод подпроцесса был перенаправлен, используя ProcessBuilder.redirectOutput
тогда этот метод возвратит нулевой входной поток.
Иначе, если стандартная ошибка подпроцесса была перенаправлена, используя ProcessBuilder.redirectErrorStream
тогда входной поток, возвращенный этим методом, получит объединенный стандартный вывод и стандартную ошибку подпроцесса.
Примечание реализации: Это - хорошая идея для возвращенного входного потока, который будет буферизован.
public abstract InputStream getErrorStream()
Process
объект. Если стандартная ошибка подпроцесса была перенаправлена, используя ProcessBuilder.redirectError
или ProcessBuilder.redirectErrorStream
тогда этот метод возвратит нулевой входной поток.
Примечание реализации: Это - хорошая идея для возвращенного входного потока, который будет буферизован.
public abstract int waitFor() throws InterruptedException
Process
объект завершился. Этот метод сразу возвращается, если подпроцесс уже завершился. Если подпроцесс еще не завершился, вызывающий поток будет блокирован до выходов подпроцесса.Process
объект. Условно, значение 0
указывает на нормальное завершение.InterruptedException
- если текущий поток прерывается другим потоком, в то время как это ожидает, то ожидание заканчивается и InterruptedException
бросается.public abstract int exitValue()
Process
объект. Условно, значение 0
указывает на нормальное завершение.IllegalThreadStateException
- если подпроцесс представляется этим Process
объект еще не завершилсяpublic abstract void destroy()
Process
объект насильственно завершается.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.