一、常用命令
在JDK的bin目彔下,包含了java命令及其他实用工具。
一、常用命令 在JDK的bin目彔下,包含了java命令及其他实用工具。
java 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在如下图中
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命令。
三、jstack命令 如果不记得具体用法,使用jstack -help 查看帮助 -F当’jstack [-l] pid’没有相应的时候强制打印栈信息 -l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表. -m打印java和native c/c++框架的所有栈信息. -h | -help打印帮助信息 其他命令具体学习可以查看下面的参考资料。 参考学习资料:
|