Как убить определенный процесс Java по имени приложения

2

Обычный taskkill /im "java.exe"убьет все процессы Java в списке. Я, однако, хочу убить конкретного. Проблема состоит в том, чтобы определить правильный процесс, поскольку есть несколько java.exeпроцессов, которые выполняются одновременно и не связаны друг с другом.

Есть ли способ убить процесс по имени приложения, а не по имени процесса? У меня есть имя приложения, отображаемое на вкладке Приложения в диспетчере задач, и вручную я могу щелкнуть правой кнопкой мыши на этом приложении и выбрать «Перейти к процессу». Это выделит соответствующий процесс Java. Есть ли способ сделать это из командной строки?

Евгений С
источник

Ответы:

4

Используя taskkill, вы можете убить процесс на основе заголовка окна, используя фильтр.

taskkill /F /FI "WindowTitle eq Spotify" /T
  • /F - силовое задание убить
  • /T - убить дочерний процесс
  • /FI - Фильтровать задачи

Если заголовок окна содержит кавычки, вы можете избежать вложенных кавычек с помощью обратной косой черты ( \).

Аналогичным образом вы можете использовать список задач для поиска задачи по заголовку окна.

tasklist /V /FI "WindowTitle eq Spotify"

Вы можете использовать *как подстановочный знак, чтобы соответствовать шаблону

tasklist /V /FI "WindowTitle eq S*"
mroselli
источник
2

Для всех процессов java.exe есть связанный с ним атрибут «Командная строка», который можно получить с помощью:

wmic PROCESS where "name like '%java%'" get Commandline

как правило, вы найдете файл JAR (специфичный для процесса Java) как часть командной строки

Вы можете использовать это имя файла JAR или любой части командной строки, чтобы отфильтровать процессы Java и получить нужный идентификатор процесса, используя

wmic PROCESS where "name like '%java.exe%' AND CommandLine like '%<part of commnad line argument>%'"get Processid

вместо использования get Processid в приведенной выше команде вы можете использовать call Terminate для непосредственного уничтожения процесса.

wmic PROCESS Where "name Like '%java.exe%' AND CommandLine like '%<part of commnad line argument>%'" Call Terminate
мукуль ачарья
источник
Спасибо, я буду иметь это в виду
Евгений С