jps命令的作用是显示当前用户的Java进程。相当于Linux系统下的ps aux | grep java命令。但是jps并不是使用应用程序名称来查找JVM实例,而是查找当前用户的所有Java进程。

功能

jps(Java Virtual Machine Process Status Tool)是JDK1.5提供的用来显示当前用户的所有Java进程的命令行工具,一般用于在Linux平台上查找我们需要分析的Java进程。
注意:
      1 本文所有的内容是以Linux为例!!!
      2 jps命令只能显示当前用户的Java进程

实现原理

Java进程启动之后会在 /tmp/目录下生成一个:hsperfdata_{user}格式的文件夹。如下图所示:

在这些文件夹之下有一些文件,这些文件的名字就是该文件夹对应的用户的Java程序。如下图所示:

可以看到 flume用户有一个Java进程(进程Id为3113),tomcat用户有一个Java进程(进程Id为12010)。
因此,列出当前用户的所有Java进程的方法就是遍历/tmp目录下的所有属于当前用户的文件而已。

使用方法

jps参数详细说明

可以使用jps -help来查看jps命令所支持的所有选项:

jps -g

只显示进程的id

jps -m

输出传递给main的参数

jps -l

输出应用程序的包名,主文件名,jar文件的完整路径(如果是jar)

jps -v

输出传递给jvm的参数