jps功能
显示目标机器(本机
或者远程
)上的java进程。
用法
# 查看命令使用方式
[root@localhost ~]# jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:<port>]
参数说明
:
参数 | 含义 |
---|---|
-q | 只显示本地虚拟机标识符lvmid (local JVM identifiers) |
-m | 显示传递给main 方法的参数 |
-l | 显示应用程序主类的包名 或者jar的全路径 |
-v | 显示传递给虚拟机的参数 |
-V | 官方文档介绍与-q参数功能一致,实测没卵用 ,可能是我打开方式不对,记得留言我 |
hostid | 当目标机器是远程机器 时使用,用于标识远程机器 |
命令输出格式
:
lvmid [ [ classname | JARfilename | “Unknown”] [ arg* ] [ jvmarg* ] ]
实战一波
实战环境:
环境 | 描述 |
---|---|
虚拟机操作系统 | CentOS Linux release 7.6.1810 (Core) |
虚拟机IP | 192.168.1.14 |
虚拟机java | openjdk version “1.8.0_232” |
虚拟机用户 | root |
启动被监控Java进程
# 查看当前目录
[root@localhost ~]# pwd
/root
# 在/root下创建tech/nosql文件夹
[root@localhost ~]# mkdir -vp tech/nosql
mkdir: 已创建目录 "tech"
mkdir: 已创建目录 "tech/nosql"
# 创建测试用java文件:Hello.java
cat > tech/nosql/Hello.java <<EOF
package tech.nosql;
public class Hello {
public static void main(String[] args) {
for (int j = 0; j < Integer.MAX_VALUE; j++) {
try {
Thread.sleep(1000);
System.out.println("j = " + j);
} catch (InterruptedException e) {
System.out.println("error");
}
}
}
}
EOF
# 编译Hello.java
[root@localhost ~]# javac tech/nosql/Hello.java
# 运行Hello,传入虚拟机参数-Xms100m,给main方法传入arg1,arg2两个参数
[root@localhost ~]# java -Xms100m tech/nosql/Hello arg1 arg2
j = 0
j = 1
.....
jps实战
# 直接输入jps,默认输出格式:lvmid [ classname | JARfilename | "Unknown"]
[root@localhost ~]# jps
17073 Hello
17189 Jps
# -q: 只显示lvmid
[root@localhost ~]# jps -q
17073
17395
# -m:显示传递给main方法的参数,成功显示arg1,arg2
[root@localhost ~]# jps -m
17073 Hello arg1 arg2
17487 Jps -m
# -l:显示应用程序主类的包名或者jar的全路径,此时显示了Hello类的包名
[root@localhost ~]# jps -l
17073 tech/nosql/Hello
17541 sun.tools.jps.Jps
# -v:显示传递给虚拟机的参数,显示了传递给虚拟机的-Xms100m
[root@localhost ~]# jps -v
17073 Hello -Xms100m
17621 Jps -Dapplication.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 -Xms8m
# -V:官方文档介绍与-q参数功能一致,实测没卵用
[root@localhost ~]# jps -V
17073 Hello
17716 Jps
# -mlv:显示全部信息,格式:lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
[root@localhost ~]# jps -mlv
17073 tech/nosql/Hello arg1 arg2 -Xms100m
17852 sun.tools.jps.Jps -mlv -Dapplication.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 -Xms8m
参考地址
JDK13-tools: https://docs.oracle.com/en/java/javase/13/docs/specs/man/index.html
JDK13-jps: https://docs.oracle.com/en/java/javase/13/docs/specs/man/jps.html
JDK8-tools:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/
JDK8-jps:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html#CHDCGECD