40

我想杀死 Windows 中的特定 Java 进程,就像在 Linux 中一样(ps -aux获取 processid 然后kill processid杀死进程)。

4

9 回答 9

47

您可以使用JDKjps中包含的实用程序来查找 Java 进程的进程 ID。输出将显示可执行 JAR 文件的名称或主类的名称。

然后使用 Windows 任务管理器终止该进程。如果您想在命令行上执行此操作,请使用

TASKKILL /PID %PID%
于 2012-10-23T08:02:12.960 回答
17

您还可以使用任务管理器找到 java 程序的 PID。您启用PID命令行列View -> Select Columns,然后能够找到正确的进程。

您的结果将是这样的: 在此处输入图像描述

于 2013-10-17T16:06:53.023 回答
11

设置好 jdk 的路径后使用JPS.Then 你可以很容易地通过任务管理器杀死它
JPS会给你所有的 java 进程

于 2012-10-23T08:03:00.520 回答
11

即使有多个 jar 实例正在运行,这也会起作用

wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
于 2017-01-06T07:46:39.660 回答
2

我找到的解决方案非常简单。使用 Window 的 WMIC 和 Java 的运行时来定位和终止进程。

第 1 部分:您需要将某种标识符放入应用程序的启动命令行中。例如:

String id = "com.domain.app";

第 2 部分:运行应用程序时,请确保包含字符串。假设您从 Java 中启动它,请执行以下操作:

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

第 3 部分:要终止进程,请使用 Window 的 WMIC。只需确保您的应用程序已从上面包含您的 id 开始:

Runtime.getRuntime().exec(
  "wmic process Where \"CommandLine Like '%" + id + "%'\" Call Terminate"
);
于 2016-01-12T07:10:51.643 回答
1

在 Windows XP 及更高版本中,有一个命令:列出所有进程 ID 的任务列表。

要在 Windows 中终止进程,请参阅:

真正杀死Windows中的进程| 堆栈溢出

您可以通过以下方式在 Java 中执行操作系统命令:

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

如果您需要处理命令的输出,请参见示例:在 Java 中使用 Runtime.exec()

于 2012-10-23T08:04:31.997 回答
0

这是特定于 Windows 的。我遇到了同样的问题,我必须使用 taskkill 杀死一个特定的 java 程序。当我运行 java 程序时,tasklist 显示图像名称设置为 java.exe 的相同程序。但是使用杀死它taskkill /F java.exe会停止所有其他Java应用程序,而不是不需要的预期应用程序。

所以我使用以下方法运行相同的 java 程序:

start "MyProgramName" java java-program..

这里的启动命令将打开一个新窗口并运行窗口标题设置为 MyProgramName 的 java 程序。

现在要杀死这个 java 程序,使用以下 taskkill 命令:

taskkill /fi "MyProgramName"

您的 Java 程序只会被杀死。休息不受影响。

于 2014-01-08T10:12:21.623 回答
0

在windows中,我们可以使用PowerShell来列出java运行的进程。然后使用进程ID我们可以终止进程。请找到以下需要在 PowerShell 中执行的命令。

列出 Java 进程。

ps | Where-Object -Property ProcessName -EQ -Value 'Java'

杀死具有特定 id 的 java 进程。

Stop-Process <PID>

上述方法对我有用。

于 2022-02-07T09:13:51.633 回答
0
  1. 打开 Git Bash
  2. 类型ps -ef | grep java
  3. 找到pid运行jdk的
  4. kill -9 [pid]
于 2020-10-16T10:38:55.767 回答