如何在Windows上find正在运行的Java进程的进程ID? 而如何独自杀死这个过程呢?

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

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

然后使用Windows任务管理器来终止该进程。 如果你想在命令行上使用它,请使用

 TASKKILL /PID %PID% 

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

你的结果会是这样的: 在这里输入图像说明

设置好jdk的路径后,使用JPS 。然后你可以通过任务管理器将其杀死
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和更高版本中,有一个命令: tasklist列出所有进程ID。

要在Windows中杀死进程,请参阅: https : //stackoverflow.com/a/49990/92063

您可以通过以下方式在Java中执行OS命令:

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

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

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

所以我运行相同的Java程序使用:

 start "MyProgramName" java java-program.. 

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

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

 taskkill /fi "MyProgramName" 

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