知道在Windows机器上杀死哪个java.exe进程

Pet*_*ter 46 java windows

当基于Java的应用程序在Windows机器上开始出现异常时,如果无法正常退出应用程序,则希望能够终止任务管理器中的进程.大多数情况下,我的机器上运行的应用程序不止一个.有没有更好的方法,而不是随机杀死java.exe进程,希望你最终能够找到正确的应用程序?

编辑:感谢所有向我指出Sysinternal的Process Explorer的人 - 正是我正在寻找的!

Mis*_*sha 54

运行jps -lv,显示所有正在运行的Java进程的PID和命令行.

确定要杀死的任务的PID.然后使用命令:

taskkill /PID <pid>
Run Code Online (Sandbox Code Playgroud)

杀死行为不端的过程.

  • 我喜欢这个答案.遗憾的是****jps**不与**JRE**一起分发,这是我想要使用它的限制. (2认同)

Ric*_*yes 33

下载Sysinternal的Process Explorer.它是一个比Windows自己的经理更强大的任务管理器.

其中一个功能是您可以看到每个进程正在使用的所有资源(如注册表项,硬盘目录,命名管道等).因此,浏览每个java.exe进程所拥有的资源可能会帮助您确定要杀死的资源.我通常会通过查找使用某个日志文件目录的那个来查找.

  • Process Explorer还可以显示启动java.exe进程的命令.这通常包含jar文件的名称或类的名称. (3认同)

Jes*_*sse 31

如果您无法运行ProcessExplorer之类的GUI应用程序并且您正在查找进程的"命令行"参数,那么您可以通过命令行使用"wmic".例如:

wmic PROCESS get Processid,Caption,Commandline
Run Code Online (Sandbox Code Playgroud)

如果要查找特定过程,可以执行以下操作:

wmic PROCESS where "name like '%java%'" get Processid,Caption,Commandline
Run Code Online (Sandbox Code Playgroud)

此输出将显示"java"等进程的所有命令行参数.

  • 这是最好的方法,因为您可以使用"FIND.exe"过滤此列表,然后将其传递给"WMIC .... delete"以终止进程.这是一个"纯粹"的解决方案,无需任何外部程序. (4认同)

Tom*_*ine 7

在JDK中使用jps将为您提供更多信息.使用-m,-l和-v选项显示更多信息.


Rai*_*lin 6

您是否尝试过使用SysInternals的Process Explorer?它可以更好地了解流程中的运行情况.可在线免费下载:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx


Bil*_*ell 6

如果您使用的是Java 6,请从JDK bin目录中尝试jvisualvm.