idea jps使用_必知必会的JVM工具系列一,读懂会用jps、jstat、jinfo、jmap

本文详细介绍了Java 8中的JDK命令行工具,包括jps(列出Java进程)、jstat(观察运行时信息)、jinfo(查看和修改运行时参数)、jmap(生成堆快照)。通过实例演示了如何使用这些工具,以帮助理解Java应用程序的运行状态和性能分析。
摘要由CSDN通过智能技术生成
2eb43591b71faeafa1b3056622449784.png

介绍

很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难。

Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM对象中的_klass指针的大小,引入了类指针压缩空间(Compressed Class Pointer Space) 。

1. JDK命令行工具

在JDK的开发包中,除了大家熟知的java.exe和javac.exe外,还有一系列辅助工具。这些工具在JDk安装目录下的bin目录中。如图:

737c17b6687662e76dd4e9be2c3842c6.png

虽然乍看之下,这些工作都是exe的可执行文件。但事实上,它们只是Java程序的一层包装,其真正实现是在 tools.jar 中。

e38a5fbb2ab38bf125507772c8cfd38c.png
940298f16e9d60ee90e58fd5bd983e1c.png

以jps工具为例,在控制台执行jps命令和java -classpath %Java_HOME%/lib/tools.jar sun.tools.jps.Jps命令是等价的,即jps.exe只是这个命令的一层包装。

在学习以下命令之前,不妨使用IDEA写个不会退出的小程序,方便测试。示例代码:

package cn.zyzpp.jConsole;import java.text.SimpleDateFormat;import java.util.Date;public class Main { public static void main(String[] args) throws InterruptedException { while (true){ Thread.sleep(10000); //Byte[] bytes = new Byte[1024]; //bytes = null; //System.gc(); System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date())); } }}

1.1 jps命令

命令jps用于列出java进程,直接运行jps不加任何参数,可以列出Java程序的进程ID以及Main函数等名称。

49064aac18ef73c62c45cda858d3814e.png

从这个输出中可以看到,当前系统中共存在4个Java应用程序,其中第一个输出jps就是jps命令本身,这个更加证明此命令本质也是一个Java程序。此外,jps还提供了一系列参数来控制它的输出内容。

参数-q指定jps只输出进程ID,而不输出类的短

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值