Как вы получаете идентификатор процесса в Java? - PullRequest
4 голосов
/ 05 января 2011

Я пытаюсь найти способ программно открыть и закрыть приложение. Я могу легко запустить приложение, используя

 Runtime.getRuntime().exec(new String[] {"open", "<path to application>"});

однако, единственный способ найти его - использовать строку

 Runtime.getRuntime().exec(new String[] {"kill", "<process id#>"});

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 05 января 2011

Используйте java.lang.ProcessBuilder для запуска подпроцесса.Возвращенный объект Process имеет метод destroy(), который позволит вам убить его.

0 голосов
/ 12 августа 2011

Это, вероятно, больше не относится к оригинальному постеру (из-за истекшего времени), но только для полноты картины

Вы получаете дескриптор объекта процесса в результате команды exec(...):

Process myProcess = Runtime.getRuntime().exec("mybin");

Вы можете в любое время убить с помощью destroy():

myProcess.destroy();

Примечание: это может быть похоже на то, что Джим описывал, но не использовал ProcessBuilder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...