我想杀死 Windows 中的特定 Java 进程,就像在 Linux 中一样(ps -aux
获取 processid 然后kill processid
杀死进程)。
9 回答
您可以使用JDKjps
中包含的实用程序来查找 Java 进程的进程 ID。输出将显示可执行 JAR 文件的名称或主类的名称。
然后使用 Windows 任务管理器终止该进程。如果您想在命令行上执行此操作,请使用
TASKKILL /PID %PID%
您还可以使用任务管理器找到 java 程序的 PID。您启用PID和命令行列View -> Select Columns
,然后能够找到正确的进程。
您的结果将是这样的:
设置好 jdk 的路径后使用JPS
.Then 你可以很容易地通过任务管理器杀死它JPS
会给你所有的 java 进程
即使有多个 jar 实例正在运行,这也会起作用
wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
我找到的解决方案非常简单。使用 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"
);
在 Windows XP 及更高版本中,有一个命令:列出所有进程 ID 的任务列表。
要在 Windows 中终止进程,请参阅:
您可以通过以下方式在 Java 中执行操作系统命令:
Runtime.getRuntime().exec("your command here");
如果您需要处理命令的输出,请参见示例:在 Java 中使用 Runtime.exec()
这是特定于 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 程序只会被杀死。休息不受影响。
在windows中,我们可以使用PowerShell来列出java运行的进程。然后使用进程ID我们可以终止进程。请找到以下需要在 PowerShell 中执行的命令。
列出 Java 进程。
ps | Where-Object -Property ProcessName -EQ -Value 'Java'
杀死具有特定 id 的 java 进程。
Stop-Process <PID>
上述方法对我有用。
- 打开 Git Bash
- 类型
ps -ef | grep java
- 找到
pid
运行jdk的 kill -9 [pid]