如何在Windows上查找正在运行的Java进程的进程id?如何单独终止该过程?
我想在Windows中终止特定的Java进程,就像在Linux中一样(如何在Windows上查找正在运行的Java进程的进程id?如何单独终止该过程?,java,windows,process-management,Java,Windows,Process Management,我想在Windows中终止特定的Java进程,就像在Linux中一样(ps-aux获取进程id,然后kill processid终止进程)。您可以使用jps实用程序来查找Java进程的进程id。输出将显示可执行JAR文件的名称或主类的名称 然后使用Windows任务管理器终止进程。如果要在命令行上执行此操作,请使用 TASKKILL /PID %PID% 设置jdk的路径后,请使用JPS。然后您可以通过任务管理器将其删除JPS将在windows XP和更高版本中为您提供所有java进程,其中有
ps-aux
获取进程id,然后kill processid
终止进程)。您可以使用jps
实用程序来查找Java进程的进程id。输出将显示可执行JAR文件的名称或主类的名称
然后使用Windows任务管理器终止进程。如果要在命令行上执行此操作,请使用
TASKKILL /PID %PID%
设置jdk的路径后,请使用
JPS
。然后您可以通过任务管理器将其删除JPS
将在windows XP和更高版本中为您提供所有java进程,其中有一个命令:tasklist列出所有进程id
有关在Windows中终止进程的信息,请参阅:
您可以通过以下方式在Java中执行OS命令:
Runtime.getRuntime().exec("your command here");
如果需要处理命令的输出,请参见示例:您还可以使用任务管理器找到java程序的PID。您可以启用PID和命令行列
视图->选择列
,然后可以找到正确的进程
您的结果如下所示:
这是Windows特有的。 我面临着同样的问题,我必须使用taskkill杀死一个特定的java程序。当我运行java程序时,tasklist显示的是同一个程序,图像名设置为java.exe。 但是使用
taskkill/F java.exe
杀死它将停止所有其他java应用程序,而不是预期的不需要的应用程序
因此,我使用以下方法运行相同的java程序:
start "MyProgramName" java java-program..
在这里,start命令将打开一个新窗口并运行java程序,窗口标题设置为MyProgramName
现在,要终止此java程序,请使用以下taskkill命令:
taskkill /fi "MyProgramName"
您的Java程序将仅被终止。其余部分将不受影响。我找到的解决方案非常简单。使用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"
);
即使有多个jar实例正在运行,这也会起作用
wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
ps-ef | grep java
pid
kill-9[pid]
检查以下[在此处输入链接描述][1][1]:如果您有任何歧义,请随时询问:)如果有帮助,请接受答案:)请查看您的Windows任务管理器窗口是德语的,但您的it显示完整答案:我们可能会在列表中找到java进程,然后我们会在
命令行中找到它的PID号(在图片Befehlszeile中)我们看到完整的命令,它帮助我们区分要终止哪个java进程然后选择Select column
选项。jps
工具现在包含在JDK/bin目录中。我还建议使用-l
选项,该选项输出应用程序主类的完整包名,这可能会有所帮助。jps不是Windows上的JRE 1.8的一部分,并且不允许在bund之外重新分发jps.exeled JDK-如果你像我一样有这样的想法:(-因此下面的WMIC解决方案是metaskkill的真正赢家不起作用:错误:无法识别搜索筛选器(关于它的一些信息)。但是感谢start“MyProgramName”
taskkill/fi“WINDOWTITLE eq MyProgramName”工作正常。