知道要在windows计算机上终止哪个java.exe进程

知道要在windows计算机上终止哪个java.exe进程,java,windows,Java,Windows,当基于java的应用程序在windows计算机上开始出现错误行为时,如果无法正常退出应用程序,您希望能够在任务管理器中终止该进程。大多数时候,我的机器上运行着不止一个基于java的应用程序。有没有比随机终止java.exe进程以期最终找到正确的应用程序更好的方法 编辑:感谢所有将我引向Sysinternal的Process Explorer的人,这正是我想要的 您是否尝试过从系统内部使用Process Explorer?它可以更好地了解流程中运行的内容。此处免费在线提供:我建议从Sysinter

当基于java的应用程序在windows计算机上开始出现错误行为时,如果无法正常退出应用程序,您希望能够在任务管理器中终止该进程。大多数时候,我的机器上运行着不止一个基于java的应用程序。有没有比随机终止java.exe进程以期最终找到正确的应用程序更好的方法


编辑:感谢所有将我引向Sysinternal的Process Explorer的人,这正是我想要的

您是否尝试过从系统内部使用Process Explorer?它可以更好地了解流程中运行的内容。此处免费在线提供:

我建议从Sysinternals下载Process Explorer,并更仔细地查看不同的java.exe进程,这样您就可以更好地了解杀死哪个进程

这非常直观,您可以找到java.exe进程,右键单击并转到它们的属性,从那里您可以看到它们的命令行、创建时间等,这可以帮助您找到想要终止的进程

希望对您有所帮助。

使用并将鼠标悬停在Java进程上,将显示命令行。

下载。它是一个比Windows自己的管理器功能强大得多的任务管理器


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

您可以尝试打开Windows任务管理器,转到“应用程序”选项卡,右键单击应用程序,然后选择“转到进程”。这将自动突出显示“流程”选项卡中的相应流程。

如果应用程序根本没有响应,则process Explorer是一个不错的选择


如果它有某种响应,但没有消亡,有时会打开任务管理器,然后在java进程上移动另一个对话框,这会给您一个线索。重新绘制占用cpu周期的java进程就是您正在寻找的进程。

如果您正在开发软件,请使用java启动器。我使用了一些我的应用程序[Exe4j],它工作得很好。当应用程序启动时,它在windows任务管理器中被列为例如“myserverapp.exe”或“myapp”。
还有其他的自助洗衣店(不记得了)在JDK中使用JP将提供更多信息。更多信息将通过-m、-l和-v选项显示。

如果您大致了解系统上的各种java进程,您还可以通过查看task manager中的所有列进行很好的猜测,而不是使用第三方工具在进程选项卡中,使用查看->选择列并添加PID、CPU时间、VM大小和线程数。大致了解进程正在做什么有助于缩小范围

例如,在客户机-服务器应用程序中,服务器可能会使用更多内存、更多线程,并且由于运行时间较长而占用更多CPU时间。如果您因为某个进程被卡住而终止该进程,那么它现在可能只会占用更多CPU


最大java堆内存通常直接反映在VM大小中。因此,如果使用-Xmx标志,设置较大的进程将具有较大的VM大小。

Run
jps-lv
,其中显示所有正在运行的java进程的PID和命令行

确定要终止的任务的PID。然后使用命令:

taskkill /PID <pid>
taskkill/PID

杀死行为不端的进程。

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

如果无法运行ProcessExplorer之类的GUI应用程序,并且正在查找进程的“命令行”参数,则可以通过命令行使用“wmic”。例如:

wmic PROCESS get Processid,Caption,Commandline
如果要查找特定流程,可以执行以下操作:

wmic PROCESS where "name like '%java%'" get Processid,Caption,Commandline

此文件的输出将向您显示“java”等进程的所有命令行参数。

Process Explorer还可以向您显示启动java.exe进程的命令。该命令通常包含jar文件的名称或类的名称。Linux(Ubuntu)是否有类似的工具可用?@Ivan我认为
htop
可以完成这项工作。jps很棒。此解决方案将允许您在脚本中杀死相关的Java进程,而Process Explorer不会。这是最好的方法,因为您可以使用“FIND.exe”筛选此列表,然后将其传递到“WMIC…delete”以杀死进程。这是一种“纯”方法不需要任何外部程序的解决方案。可以使用
/format:list
标志(例如,当
命令行
较长时)使输出更具可读性。使用此命令而不需要taskkill:jps-lv | find“something”| WMIC PROCESS where name=“java.exe”我喜欢这个答案。遗憾的是,虽然jps并没有和JRE一起发布,这是我想在哪里使用它的一个限制。