Язык

ProcessBuilder Класс

Определение

Этот класс используется для создания процессов операционной системы.

[Android.Runtime.Register("java/lang/ProcessBuilder", DoNotGenerateAcw=true)]
public sealed class ProcessBuilder : Java.Lang.Object
[<Android.Runtime.Register("java/lang/ProcessBuilder", DoNotGenerateAcw=true)>]
type ProcessBuilder = class
    inherit Object
Наследование
ProcessBuilder
Атрибуты

Комментарии

Этот класс используется для создания процессов операционной системы.

Каждый ProcessBuilder экземпляр управляет коллекцией атрибутов процесса. Метод #start() создает новый Process экземпляр с этими атрибутами. Метод #start() можно вызывать многократно из одного экземпляра, чтобы создать новые подпроцессы с идентичными или связанными атрибутами.

Каждый построитель процессов управляет этими атрибутами процесса:

<Ул>

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

<li>среда, которая является системным сопоставлением от переменных к значениям. Начальное значение — это копия среды текущего процесса (см. ).System#getenv()

<li>рабочий каталог. Значение по умолчанию — текущий рабочий каталог текущего процесса, обычно каталог с именем системного свойства user.dir.

<li>"redirect-input">источник <i>standard input</i>. По умолчанию подпроцесс считывает входные данные из канала. Java код может получить доступ к этому каналу через выходной поток, возвращенный Process#getOutputStream(). Однако стандартные входные данные могут быть перенаправлены в другой источник с помощью #redirectInput(Redirect) redirectInput. В этом случае Process#getOutputStream() возвращается выходной поток NULL, для которого:

<ul><li>OutputStream#write(int) write методы всегда бросают IOException<li>OutputStream#close() close метод не делает ничего </ul>

<li>"redirect-output">a destination for <i>standard output</i and >i<standard error>/i<>. По умолчанию подпроцесс записывает стандартные выходные данные и стандартную ошибку в каналы. Java код может получить доступ к этим каналам через входные потоки, возвращаемые Process#getInputStream() и Process#getErrorStream(). Однако стандартные выходные данные и стандартная ошибка могут быть перенаправлены в другие назначения с помощью #redirectOutput(Redirect) redirectOutput и #redirectError(Redirect) redirectError. В этом случае Process#getInputStream() и (или) Process#getErrorStream() возвращает входной поток null, для которого:

<ul><li >InputStream#read() readметоды всегда возвращают -1<li метод всегда возвращает>InputStream#available() available li0<>InputStream#close() close, метод ничего не <делает /ul>

<li>свойство redirectErrorStream . Изначально это свойство означает false, что стандартные выходные данные и выходные данные ошибок подпроцесса отправляются в два отдельных потока, к которым можно получить доступ с помощью Process#getInputStream() методов и Process#getErrorStream() методов.

Если для параметра задано trueзначение, выполните следующие действия.

<Стандартная ошибка ul>li объединяется со стандартными выходными данными и всегда отправляется в то же место назначения (это упрощает сопоставление сообщений об ошибках с соответствующими выходными данными) <ли>общее назначение стандартной ошибки и стандартных выходных данных можно перенаправить с помощью<> ли любой перенаправления, заданной #redirectOutput(Redirect) redirectOutput методом, игнорируется при создании потока подпроцесса<,>#redirectError(Redirect) redirectErrorвозвращаемого потоком<, возвращаемым из него, всегда будет пустым входным потоком>/ul.Process#getErrorStream()<>

</ul>

Изменение атрибутов построителя процессов повлияет на процессы, которые впоследствии запускаются методом этого объекта#start(), но никогда не повлияют на ранее запущенные процессы или сам процесс Java.

Большинство проверок ошибок выполняется методом #start() . Можно изменить состояние объекта, чтобы завершиться #start() ошибкой. Например, установка атрибута команды в пустой список не приведет к возникновению исключения, если #start() не вызывается.

<Strong>Обратите внимание, что этот класс не синхронизирован.</strong> , если несколько потоков одновременно обращаются к ProcessBuilder экземпляру, а по крайней мере один из потоков изменяет один из атрибутов структурно, он должен быть синхронизирован внешне.

Запуск нового процесса, использующего рабочий каталог по умолчанию и среду, прост:

{@code
            Process p = new ProcessBuilder("myCommand", "myArg").start();
            }

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

{@code
            ProcessBuilder pb =
              new ProcessBuilder("myCommand", "myArg1", "myArg2");
            Map<String, String> env = pb.environment();
            env.put("VAR1", "myValue");
            env.remove("OTHERVAR");
            env.put("VAR2", env.get("VAR1") + "suffix");
            pb.directory(new File("myDir"));
            File log = new File("log");
            pb.redirectErrorStream(true);
            pb.redirectOutput(Redirect.appendTo(log));
            Process p = pb.start();
            assert pb.redirectInput() == Redirect.PIPE;
            assert pb.redirectOutput().file() == log;
            assert p.getInputStream().read() == -1;
            }

Чтобы запустить процесс с явным набором переменных среды, сначала вызовите java.util.Map#clear() Map.clear() перед добавлением переменных среды.

Добавлено в версии 1.5.

Java документации по java.lang.ProcessBuilder.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
ProcessBuilder(IList<String>)

Создает построитель процессов с указанными программами и аргументами операционной системы.

ProcessBuilder(String[])

Создает построитель процессов с указанными программами и аргументами операционной системы.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
JniPeerMembers

Возвращает метаданные JNI, используемые для вызова элементов этого Java однорангового узла.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)

Методы

Имя. Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Command()

Возвращает эту программу и аргументы операционной системы построителя процессов.

Command(IList<String>)

Задает программу и аргументы операционной системы построителя процессов.

Command(String[])

Возвращает эту программу и аргументы операционной системы построителя процессов.

Construct(JniObjectReference, JniObjectReferenceOptions)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
Directory()

Возвращает рабочий каталог построителя процессов.

Directory(File)

Задает рабочий каталог построителя процессов.

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
Environment()

Возвращает представление схемы строк для среды построителя процессов.

Equals(Object)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
InheritIO()

Задает источник и назначение для стандартного ввода-вывода субпроцесса, совпадающего с текущим процессом Java.

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
RedirectError()

Возвращает стандартное назначение ошибки построителя процессов.

RedirectError(File)

Задает стандартное назначение ошибки построителя процессов в файл.

RedirectError(ProcessBuilder+Redirect)

Задает стандартное назначение ошибки построителя процессов.

RedirectErrorStream()

Указывает, объединяет ли этот построитель процессов стандартные ошибки и стандартные выходные данные.

RedirectErrorStream(Boolean)

Задает свойство построителя redirectErrorStream процессов.

RedirectInput()

Возвращает стандартный источник входных данных построителя процессов.

RedirectInput(File)

Задает стандартный источник входных данных этого построителя процессов в файл.

RedirectInput(ProcessBuilder+Redirect)

Задает стандартный источник входных данных этого построителя процессов.

RedirectOutput()

Возвращает стандартное назначение выходных данных построителя процессов.

RedirectOutput(File)

Задает стандартное назначение выходных данных этого построителя процессов в файл.

RedirectOutput(ProcessBuilder+Redirect)

Задает стандартное назначение выходных данных построителя процессов.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
Start()

Запускает новый процесс с помощью атрибутов этого построителя процессов.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Этот класс используется для создания процессов операционной системы.

(Унаследовано от JavaObject)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс используется для создания процессов операционной системы.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к