前言
本文我们来学习下JVM中的一些常用的指令。
jps
介绍
jps 是(java process Status Tool), Java版的ps命令,查看java进程及其相关的信息,如果你想找到一个java进程的pid,那可以用jps命令替代linux中的ps命令了,简单而方便。
命令格式:
jps [options] [hostid]
options参数解释:
- -l : 显示进程id,显示主类全名或jar路径
- -q : 显示进程id
- -m : 显示进程id, 显示JVM启动时传递给main()的参数
- -v : 显示进程id,显示JVM启动时显示指定的JVM参数
hostid : 主机或其他服务器ip
最常用示例:
jps -l 输出jar包路径,类全名
jps -m 输出main参数
jps -v 输出JVM参数
实战
package com.example.test;
/**
* jps -q 显示进程id
* jps -l 输出jar包路径,类全名
* jps -m 输出主类名,及传入main方法的参数
* jps -v 输出主类名,及输出JVM参数
*/
public class Demo_jps {
public static void main(String[] args) {
System.out.println("jps指令");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
jps -l命令 :
jps -v命令:
先设置堆的空间大小:
执行:
jps -m命令:
先设置main方法参数:
执行:
jinfo
介绍
jinfo是用来查看JVM参数和动态修改部分JVM参数的命令
命令格式:
jinfo [option]
其中pid是进程号,由jps指令查看得到。
options参数解释:
- no options 输出所有的系统属性和参数
- -flag 打印指定名称的参数
- -flag [+|-] 打开或关闭参数
- -flag = 设置参数
- -flags 打印所有参数
- -sysprops 打印系统配置
实战
package com.example.test;
/**
jinfo [option] <pid>
options参数解释:
- no options 输出所有的系统属性和参数
- -flag <name> 打印指定名称的参数
- -flag [+|-]<name> 打开或关闭参数
- -flag <name>=<value> 设置参数
- -flags 打印所有参数
- -sysprops 打印系统配置
*
*/
public class Demo_jinfo {
public static void main(String[] args) {
System.out.println("jinfo指令");
try {
Thread.sleep(200000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
通过jps查看得到进程号为11666。
查看JVM参数和系统配置:
jinfo 11666
jinfo -flags 11666
jinfo -sysprops 11666
查看打印GC日志参数:
jinfo -flag PrintGC 11666
jinfo -flag PrintGCDetails 11666
打开GC日志参数:
jinfo -flag +PrintGC 11666