Если вы знаете PID вашей Java-программы, используйте это:
Runtime.getRuntime().exec("taskkill /F /PID bla");
, где bla
- PID вашей программы.
Этот параметр /F
принудительно убьет приложение, и я не вижу причины, по которой Java-программа будет отличаться от других программ и сможет пережить это.
Обратите внимание, что этот код явно относится к Windows. Если вы хотите, чтобы оно было переносимым, вы должны сначала выяснить, в какой ОС размещается ваше приложение, используя
System.getProperty("os.name")
и далее, используйте taskkill /F
, если вы используете Windows, или kill -9
, если вы используете * nix-систему, или что-то еще, если вы используете более экзотическую платформу.
Обновление : чтобы получить хороший обзор всех запущенных процессов, я бы порекомендовал Process Explorer . Если вам нужен список процессов командной строки, используйте PsList .
Если вы хотите убить определенную Java-программу, это может быть проблематично, поскольку каждый Java-процесс по умолчанию называется java.exe
или javaw.exe
.
Используя PsList, вы можете программно сканировать все процессы, которые начинаются с java
, а затем, вместе с jps
, вы получите больше информации о том, что вы действительно хотите убить.