博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA之 jstack命令和jps命令实战
阅读量:5906 次
发布时间:2019-06-19

本文共 1823 字,大约阅读时间需要 6 分钟。

hot3.png

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

列出所有的jvm实例 

实例: 
jps 
列出本机所有的jvm实例 

 jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。

       命令格式:jps [options ] [ hostid ] 

       [options]选项 :

-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
-Joption:传递参数到vm,例如:-J-Xms512m

        [hostid]:

[protocol:][[//]hostname][:port][/servername]

        命令的输出格式 :

lvmid [ [ classname| JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

 

 

jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:

jstack [-l] pid

如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

 

先运行一个无线wait的类, 代码很简单,目的就是让这个JAVA不要结束,永远等待

public class Test{	public static void main(String[] args)	{		Test test = new Test();		System.out.println("debug...........");		try		{			synchronized (test)			{				test.wait();			}		}		catch (InterruptedException e)		{			e.printStackTrace();		}	}}

 

示例:

094107_jt4D_2338224.png

1)、options: 

executable Java executable from which the core dump was produced.

(可能是产生core dump的java可执行程序)

core 将被打印信息的core dump文件

remote-hostname-or-IP 远程debug服务的主机名或ip

server-id 唯一id,假如一台主机上多个远程debug服务 

2)、基本参数:

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

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

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

-h | -help打印帮助信息

pid 需要被打印配置信息的java进程id,可以用jps查询.

 

如果我要查看com.chenjun.designpattern.structural.proxy.Test的【关于锁的附加信息】信息

直接 jstack -l 5500即可

 

如果打印出来还不够 还要输出到TXT文件,则使用如下命令

jstack -l 5500 >out.txt

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2338224/blog/876565

你可能感兴趣的文章
全网互联之高速通道
查看>>
JVM GC杂谈之理论入门
查看>>
byteorder.h学习
查看>>
一线大厂青睐的前端人,90%满足这3个条件
查看>>
PostgreSQL 随机记录返回 - 300倍提速实践 (随机数组下标代替order by random())
查看>>
Confluence 6 配置服务器基础地址备注
查看>>
dql数据权限控制
查看>>
JavaWeb技术内幕一:深入web请求过程
查看>>
使用ABAP正则表达式解析HTML标签
查看>>
左志坚:卖掉拇指阅读,没有什么舍不得
查看>>
SDN&NFV营收大数据分析
查看>>
监督学习最常见的五种算法,你知道几个?
查看>>
《Servlet和JSP学习指南》一1.3 编写基础的Servlet应用程序
查看>>
云服务鼻祖来告诉你99%的创业者不知道的事
查看>>
快递单信息泄露惊人 隐形面单能拯救你的隐私吗?
查看>>
Nginx 反向代理 分配方式 防攻击真实Ip
查看>>
近5年133个Java面试问题列表
查看>>
在开源氛围下,“够用就是最好”
查看>>
mongodb 配置项详解
查看>>
django 常用 模板过滤器
查看>>