如何检查特定Java程序是否使用Windows CMD运行?
如果我的电脑上正在运行某个Java程序,我如何通过CMD查找?我进去的时候
tasklist | find "javaw"
在命令行中,我可以看到有多少javaw。exe文件被执行,但我不能指定哪个“javaw.exe”属于哪个特殊的Java程序。如何知道我的“XY.class”当前是否正在运行
你可以在下面搜索框中键入要查询的问题!
如果我的电脑上正在运行某个Java程序,我如何通过CMD查找?我进去的时候
tasklist | find "javaw"
在命令行中,我可以看到有多少javaw。exe文件被执行,但我不能指定哪个“javaw.exe”属于哪个特殊的Java程序。如何知道我的“XY.class”当前是否正在运行
# 1 楼答案
正如这里提到的https://superuser.com/questions/415360/how-do-i-find-out-command-line-arguments-of-a-running-program
您也可以使用Windows的WMI服务,而无需Process Explorer。从命令提示符下运行以下命令:
如果要将输出转储到文件(使其更易于读取),请使用/output开关:
如果安装了unix工具/git scm,则可以对输出进行grep
这也奏效了
# 2 楼答案
你可以下载Sysinternal's Process Explorer。它是一个比Windows自己的管理器功能强大得多的任务管理器。 它的一个特点是,您可以看到每个进程正在使用的所有资源(如注册表项、硬盘目录、命名管道等)。因此,浏览每个java所需的资源。exe进程保持可能会帮助您确定要杀死哪个进程。我通常通过查找使用特定日志文件目录的日志文件来找到答案
另外,您可以使用JRE中包含的JPS实用程序来查找Java进程的进程id。JPS工具现在包含在JDK/bin目录中。我还建议使用
-l
选项,它会输出应用程序主类的完整包名,这可能会有所帮助。 输出将显示可执行JAR文件的名称或主类的名称然后使用Windows任务管理器终止进程。如果要在命令行上执行此操作,请使用
通过taskkill,可以使用过滤器根据窗口标题终止进程
如果窗口标题中有引号,可以用反斜杠
(\)
转义嵌套的引号您还可以以类似的方式使用tasklist,根据任务的窗口标题搜索任务
可以使用*作为通配符来匹配模式