2013-07-03 1 views
0

Так, например:Как уничтожить все Процессы из Runtime сразу?

Runtime rt = Runtime.getRuntime(); создает Runtime rt

Process p1 = rt.exec("C:/Windows/System32/calc.exe"); создает Process p1 на Runtime rt.

Затем p1.destroy(); уничтожит Process p1.

Мой вопрос: Если у меня есть более чем один Process (например p1, p2 и p3), как я могу уничтожить их все сразу, вместо того, чтобы уничтожить их одного за другим?

+1

Также рассмотрите «ProcessBuilder». – trashgod

+0

Отсоединение - это решение. –

+0

@ RomanC Что вы подразумеваете под словом «отключить»? – knorberg

ответ

2

Сохраните List<Process> всех ваших процессов и уничтожьте их в цикле.

List<Process> processes = ... 

for(Process p : processes) { 
    p.destroy(); 
} 
+0

Итак, если у меня есть все мои процессы в методе под названием «Процессы()», можно ли создать другой метод 'destroyProcesses()' и поместить туда цикл? Кроме того, как я могу ссылаться на процессы из 'destroyProcesses()'? – knorberg

+0

@ user2506658 Вам нужно будет сохранить ссылку на ['Список '] (http://docs.oracle.com/javase/7/docs/api/java/util/List.html) всех ваших процессов. Затем вы можете получить доступ к этому списку из метода, такого как 'destroyProcesses', и выполнять там работу. Вам могут быть интересны некоторые базовые [Java tutorials] (http://docs.oracle.com/javase/tutorial/), которые помогут вам. – Jeffrey

+0

Кроме того, я никогда раньше не работал со списками, и я не могу найти, как это сделать. Можете ли вы показать мне, как использовать «Список процессов = ...' для 'p1',' p2' и 'p3'? – knorberg