Собственная реализация метода Process.waitFor

Вопрос:

Я использовал метод waitFor класса Process, чтобы выполнить некоторую команду UNIX. Команда выполняется успешно, но она возвращает 2, что согласно соглашению означает ненормальное завершение.

Я googled и нашел, что это зависит от “исходного кода программы, которая выводит этот код выхода”. Поэтому я попытался найти исходный код метода waitFor, я узнал, что это собственный метод и определен в классе ProcessImpl.

public native int waitFor();

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

Мой вопрос заключается в том, как найти файл, в котором написана нативная реализация этого метода?

Ответ №1

Указанный source code относится к источнику программы, которую вы выполняете с помощью объекта Process.

В вашем случае это команда UNIX, которую вы выполняете, используя Process который заканчивается с кодом выхода 2, а не waitFor().

Поэтому, чтобы ответить на ваш реальный вопрос, ответ таков: в исходном коде JDK, который вы используете, например, вот источник OpenJDK6.

Однако, если ваш фактический вопрос: “Почему waitFor() возвращает ненулевой код выхода”, тогда ответ следующий: Процесс, который вы выполняете с Java, вернул ненулевой код выхода, а объект Process информирует вас через возврат метода waitFor()

Оцените статью
TechArks.Ru
Добавить комментарий