「每天一道面试题」JDK自带的命令行工具有哪些?

「每天一道面试题」JDK自带的命令行工具有哪些?_第1张图片

在JDK的bin目录下包含了很多功能强大的命令行工具,它们的主要功能代码都是在jdk/lib/tools.jar中实现的。下面一一介绍这些命令行工具。

jps

jps是JVM Process Status Tool的简称,用于显示指定系统内所有的HotSpot虚拟机进程。常用的命令有:

jps -l //用于输出主类的全名,如果运行的是jar包,则输出jar路径;

jps -v //用于输出虚拟机启动时的JVM参数。

jstat

jstat是JVM Statistics Monitoring Tool的简称,用于显示本地或远程虚拟机进程中的类加载、内存、垃圾回收、JIT编译等运行时数据。

jinfo是Configuration Info for Java的简称,用于显示虚拟机各项参数。常用的命令有:

jinfo -flag pid //用于查看未被显示指定的参数的默认值;

jinfo -syspros pid //用于输出虚拟机进程的System.getProperties()的内容。

jmap

jmap是Memory Map for Java的简称,用于生成堆转储快照文件、查询finalize执行队列、Java堆和永久代的详细信息,需要配合具体的选项参数使用。

jhat

jhat是JVM Heap Dump Browser的简称,用于分析生成的堆转储快照文件,并且会建立web服务,提供查看分析结果。注意,这个命令一定不要在生产机器上执行,因为它的分析过程很消耗机器资源。

jstack

jstack是Stack Trace for Java的简称,用于显示当前虚拟机内每一条线程正在执行的方法堆栈集合,可用于分析线程长时间卡顿的原因。

你可能感兴趣的:(「每天一道面试题」JDK自带的命令行工具有哪些?)