Подтвердить что ты не робот

Как найти идентификатор процесса работающего Java-процесса в Windows? И как убить процесс в одиночку?

Я хочу убить конкретный процесс Java в Windows, например, в Linux (ps -aux, чтобы получить processid, а затем kill processid, чтобы убить процесс).

4b9b3361

Ответ 1

Вы можете использовать утилиту jps, которая включена в JRE, чтобы найти идентификатор процесса Java-процесса. На выходе будет показано имя исполняемого файла JAR или имя основного класса.

Затем используйте диспетчер задач Windows для завершения процесса. Если вы хотите сделать это в командной строке, используйте

TASKKILL /PID %PID%

Ответ 2

Вы также можете найти PID программы Java с диспетчером задач. Вы включаете столбцы PID и Командная строка View -> Select Columns и затем можете найти правильный процесс.

Ваш результат будет примерно таким: enter image description here

Ответ 3

После того, как вы установили путь к вашему jdk, используйте JPS. Затем вы можете убить его с помощью диспетчера задач.
JPS предоставит вам все java-процессы

Ответ 4

Это будет работать даже при запуске нескольких экземпляров jar

wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate

Ответ 5

Решение, которое я нашел, очень просто. Используйте Window WMIC и Java Runtime, чтобы найти и убить процесс.

Часть 1: вам нужно указать какой-то идентификатор в свою командную строку запуска приложения. Например. что-то вроде:

String id = "com.domain.app";

Часть 2: при запуске приложения обязательно включите строку. Скажем, вы запустите его из Java, сделайте следующее:

Runtime.getRuntime().exec(
   "C:\...\javaw.exe -cp ... -Dwhatever=" + id + " com.domain.app.Main"
);

Часть 3: Чтобы убить процесс, используйте Window WMIC. Просто убедитесь, что приложение запущено с вашим идентификатором сверху:

Runtime.getRuntime().exec(
  "wmic process Where \"CommandLine Like '%" + id + "%'\" Call Terminate"
);

Ответ 6

В Windows XP и более поздних версиях есть команда: список задач, в котором перечислены все идентификаторы процесса.

За убийство процесса в Windows см.: fooobar.com/questions/24471/...

Вы можете выполнить OS-команды в Java:

Runtime.getRuntime().exec("your command here");

Если вам нужно обработать вывод команды, см. пример: с использованием Runtime.exec() в Java

Ответ 7

Это относится к Windows. Я столкнулся с той же проблемой, когда мне нужно убить одну конкретную программу Java, используя taskkill. Когда я запускаю программу java, в списке задач отображается одна и та же программа с именем изображения, установленным как java.exe. Но убить его с помощью taskkill /F java.exe остановит все другие приложения Java, отличные от запланированных, которые не требуются.

Итак, я запускаю одну и ту же программу java, используя:

start "MyProgramName" java java-program..

Здесь команда запуска откроет новое окно и запустит java-программу с заголовком окна, установленным в MyProgramName.

Теперь, чтобы убить эту java-программу, используйте следующую команду taskkill:

taskkill /fi "MyProgramName"

Ваша Java-программа будет только убита. Отдых не будет затронут.