Каков эквивалентный код убийства задачи CTRL+C в Windows?

В Windows 7 у меня есть Java-приложение, которое может запускать другие JAR-файлы (которые работают в фоновом режиме).

В этом приложении у меня есть кнопка, которая должна представлять команду CTRL+C для всех остальных запущенных (и все еще работающих) JAR-ов. Я нашел этот код, который должен убить задачу по PID (6272):

taskkill /F /PID 6272

Но если я запускаю этот код по команде propmt, часто он просто ждет, а затем возвращает false, поэтому он не может убить программу. Иногда это может убить, иногда нет.

Мне нужна команда, которая похожа на CTRL+C, потому что если вы нажмете эту CTRL+C, фактический процесс закончится немедленно, без ожидания!

Может ли кто-нибудь помочь мне, пожалуйста? Спасибо!

1 ответ

Решение

Прежде всего, почему вам нужна команда для запуска из Java, когда вы держите Process объект, с помощью которого вы запускаете банку, вы можете просто использовать destroy(); убить запущенный вами процесс.

Process p = Runtime.getRuntime().exec( "bla bla bla");      
p.destroy();

И если вам действительно нужно сделать это вручную из командной строки, то вам нужно найти идентификатор процесса и уничтожить его с помощью команды, которую вы уже упомянули, вы можете прочитать больше здесь: kill command командной строки windows 7 и Microsoft Taskkill

Другие вопросы по тегам