一、常用命令

在JDK的bin目彔下,包含了java命令及其他实用工具。

一、常用命令

在JDK的bin目彔下,包含了java命令及其他实用工具。

java Dump定义:

  • Java虚拟机的运行时快照。将Java虚拟机运行时的状态和信息保存到文件。
  • 线程Dump,包含所有线程的运行状态。纯文本格式。
  • 堆Dump,包含线程Dump,幵包含所有堆对象的状态。二进制格式。

使用方法:

使用命令行制作Dump

jstack:打印线程的栈信息,制作线程Dump。

jmap:打印内存映射,制作堆Dump。

步骤:

1.检查虚拟机版本(java -version)

2.找出目标Java应用的进程ID(jps)

3.使用jstack命令制作线程Dump • Linux环境下使用kill命令制作线程Dump

4.使用jmap命令制作堆Dump

二、jps命令

jdk中的jps命令可以显示当前运行的java进程以及相关参数,它的实现机制如下:

java程序在启动以后,会在java.io.tmpdir指定的目录下,就是临时文件夹里,生成一个类似于hsperfdata_User的文件夹,这个文件夹里(在Linux中为/tmp/hsperfdata_{userName}/),有几个文件,名字就是java进程的pid,因此列出当前运行的java进程,只是把这个目录里的文件名列一下而已。 至于系统的参数什么,就可以解析这几个文件获得。

windows在如下图中

java jstat命令详解 java命令大全_应用程序

 

jps -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数

jps -m 输出传递给main 方法的参数

jps -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

jps -v -v 输出传递给JVM的参数

 

使用jps可以查看当前有哪些Java进程处于运行状态。如果我运行了一个web应用(使用tomcat、jboss、jetty等启动)的时候,我就可以使用jps查看启动情况。有的时候我想知道这个应用的日志会输出到哪里,或者启动的时候使用了哪些javaagent,那么我可以使用jps -v 查看进程的jvm参数情况.。但是只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令。

JPS失效处理

 

三、jstack命令

如果不记得具体用法,使用jstack -help 查看帮助

-F当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m打印java和native c/c++框架的所有栈信息.

-h | -help打印帮助信息

java jstat命令详解 java命令大全_应用程序_02

其他命令具体学习可以查看下面的参考资料。

参考学习资料:

Java命令学习系列(二)——Jstack

 

名称

主要作用

jps

查看本机的java中进程信息

jstack

打印线程的栈信息,制作线程Dump

jmap

打印内存映射,制作堆Dump

jstat

性能监控工具 :监视虚拟机各种运行状态信息, 如进程中的类装载、内存、垃圾收集、JIT编译等运行参数

jhat

内存分析工具:用于分析heap dump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果

jconsole

简易的可视化控制台

jvisualvm

功能强大的控制台