如何通过应用程序名称终止特定的 Java 进程

如何通过应用程序名称终止特定的 Java 进程

通常taskkill /im "java.exe"会终止列表中的所有 Java 进程。但是我想终止某个特定的进程。问题在于识别正确的进程,因为有多个java.exe进程同时运行且彼此不相关。

有没有办法通过应用程序名称而不是进程名称来终止进程?我在任务管理器的“应用程序”选项卡中显示了应用程序名称,我可以手动右键单击该应用程序并选择“转到进程”。它将突出显示相关的 java 进程。有没有办法从命令行执行此操作?

答案1

使用 taskkill,您可以使用过滤器根据窗口标题终止进程。

taskkill /F /FI "WindowTitle eq Spotify" /T
  • /F- 强制终止任务
  • /T- 终止子进程
  • /FI- 过滤任务

如果窗口标题中有引号,您可以使用反斜杠 ( \) 将嵌套的引号转义。

您可以以类似的方式使用 tasklist 根据窗口标题来搜索任务。

tasklist /V /FI "WindowTitle eq Spotify"

您可以使用*作为通配符来匹配模式

tasklist /V /FI "WindowTitle eq S*"

答案2

对于所有 java.exe 进程,都有一个与之关联的“命令行”属性,您可以使用以下方法获取它:

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

通常,你会发现 Jar 文件(特定于 Java 进程)是命令行的一部分

您可以使用 jar 文件的名称或命令行的任何部分来筛选出 java 进程并使用以下方法获取所需的进程 ID

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

相关内容