Какова цель класса Процесса в Java?

Runtime objRuntime = Runtime.getRuntime();
String strBackupString = "mysqldump -u " + userName + " -p" + password + " " + dbName;
Process objProcess = objRuntime.exec(strBackupString);

Это используется для резервного копирования базы данных. Но что точно происходит? Кто-либо может заставить меня объяснить, из чего цель Runtime и Process класс?

Этот класс используется для действия, как будто мы вводим команду от командной строки? Затем, чему я должен передать objRuntime.exec() если я хочу открыть блокнот? И команда выполняется, как только мы называем исполнительный метод? Если да, то, что делает цель Process служить здесь? Я действительно не могу понять эти два класса. Заставьте меня понять. Заранее спасибо :)

9
задан Nicolas Filotto 13 May 2016 в 17:55
поделиться

2 ответа

При возникновении сомнений всегда обращайтесь к API:

java.lang.Process

Методы ProcessBuilder.start() и Runtime.exec создают собственный процесс и возвращают экземпляр подкласса Process, который можно использовать для управления процессом и получения информации о нем. Класс Process предоставляет методы для выполнения ввода из процесса, выполнения вывода в процесс, ожидания завершения процесса, проверки статуса выхода из процесса и уничтожения (kill) процесса.

Runtime.exec(String command)

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

Так что да, Runtime.exec может выполнить команду, которую вы обычно набираете в системной командной строке. Это вряд ли можно назвать платформонезависимым решением, но иногда оно необходимо. Возвращаемый объект Process позволяет вам управлять им, убивать его и, что иногда важно, перенаправлять его стандартные потоки ввода/вывода/ошибок.

Похожие вопросы

API ссылки


notepad. exe пример

Как уже говорилось, это зависит от платформы, но этот фрагмент работает на моей машине Windows; он запускает notepad.exe и пытается открыть test.txt из текущего рабочего каталога. Затем программа ждет завершения процесса и печатает его код выхода.

public class ExecExample {
    public static void main(String[] args) throws Exception {
        Process p = Runtime.getRuntime().exec("notepad.exe test.txt");      
        System.out.println("Waiting for notepad to exit...");
        System.out.println("Exited with code " + p.waitFor());
    }
}
19
ответ дан 4 December 2019 в 10:30
поделиться

Это объектно-ориентированное представление процесса. Подобно классу Thread, который представляет поток.

1
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: