一、概念
JPS 名称: jps 全称是Java Virtual Machine Process Status Tool。jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务。 jps可以列出jvm进程lvmid,主类类名,main函数参数, jvm参数,jar名称等信息。
二、用法
命令用法: jps [options] [hostid]
options:命令选项,用来对输出格式进行控制
-q:只输出进程 ID
-m:输出传入 main 方法的参数
-l:输出完全的包名,应用主类名,jar的完全路径名
-v:输出jvm参数
-V:输出通过flag文件传递到JVM中的参数
hostid:指定特定主机,可以是ip地址和域名, 也可以指定具体协议,端口。
三、原理
java程序在启动以后,会在java.io.tmpdir指定的目录下,就是临时文件夹里,生成一个类似于hsperfdata_User的文件夹,这个文件夹里(在Linux中为/tmp/hsperfdata_{userName}/),有几个文件,名字就是java进程的pid,因此列出当前运行的java进程,只是把这个目录里的文件名列一下而已。 至于系统的参数什么,就可以解析这几个文件获得。
注:如何查看java.io.tmpdir目录,我们可以在本机执行一个Main方法,内容如下即可。
System.out.println(System.getProperty("java.io.tmpdir"));
我本机运行结果如下:
进入如下目录查看就能看到类似于hsperfdata_User的文件夹了