2017-01-02 3 views
0

Я хотел бы назначить PID моему приложению (если это возможно) и убить всех остальных javaw.exe.PID java application and kill

Runtime.getRuntime().exec("taskkill /F /IM javaw.exe"); 

или PID

Runtime.getRuntime().exec("taskkill /F /PID <ID>"); 

Я знаю, что это будет убить всех javaw.exe, но мне нужно мое приложение еще и работает.

Он должен убить конкретное приложение Java, но у них есть случайное назначение PID. Я, хотя самый простой способ был бы закрыть все java-приложения работает за исключением моего.

+1

Killing by PID - это требование? Если нет, откройте сокет и слушайте команду выключения - это гораздо более чистое решение. – PeterMmm

+0

Привет, нет. Спасибо за лидерство! – BoB3R

+1

PID задаются ядром. Добавьте аргумент идентификатора no-op при запуске приложений «java -classpath ./lib com.package.MyApp key1 = val1 key2 = val2 processidenfier = abcxyz123». Перечислить процессы с полным списком аргументов, убить один за другим, когда PID пропускает активный процесс java.exe. Или используйте JNI/JNA для чтения текущего pid http://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-processid – Whome

ответ

0

Я сделал это немного иначе. Я использовал «wmic», чтобы перечислить весь процесс java и PID в конце. Я беру последние цифры и убиваю их.

wmic process where "name like '%javaw%'" 
Смежные вопросы