Я хочу убить конкретный процесс Java в Windows, например, в Linux (ps -aux
, чтобы получить processid, а затем kill processid
, чтобы убить процесс).
Как найти идентификатор процесса работающего Java-процесса в Windows? И как убить процесс в одиночку?
Ответ 1
Вы можете использовать утилиту jps
, которая включена в JRE, чтобы найти идентификатор процесса Java-процесса. На выходе будет показано имя исполняемого файла JAR или имя основного класса.
Затем используйте диспетчер задач Windows для завершения процесса. Если вы хотите сделать это в командной строке, используйте
TASKKILL /PID %PID%
Ответ 2
Вы также можете найти PID программы Java с диспетчером задач. Вы включаете столбцы PID и Командная строка View -> Select Columns
и затем можете найти правильный процесс.
Ваш результат будет примерно таким:
Ответ 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-программа будет только убита. Отдых не будет затронут.