JDK的命令行工具

来源:互联网 发布:java模拟登录教务系统 编辑:程序博客网 时间:2024/05/22 10:53
JDK的命令行工具
1JDK/bin目录下的文件

这些工具的大小都在25k左右。
2,jps:虚拟机进程状况工具
命令格式:
jps [options] []hostid

3,jstat: 虚拟机统计信息监视工具
jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的
类装载,内存,垃圾收集,JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台的服务器上,它将是运行期定位虚拟机性能问题的首选工具
命令格式:
jstat [option vmid] [interval] [s|ms] [count]

4 ,jinfo:Java配置信息工具
jinfo(configuration Info for Java)的作用是实时的查看和调整虚拟机各项参数。//使用jsp命令的-v参数可以查看细腻就启动时显示指定的参数列表,
命令格式:
jinfo [iption] pid

5,jmap:Java内存映像工具
jmap(Memort Map for Java) 命令用于生成堆转储快照(一般称为heapdump或是dump文件),通过Linux系统下的Kill -3命令发送进程退出信号“吓唬”一下虚拟机,
也能拿到dump文件。它还可以查询finalize执行队列,java堆和永久代的详细信息,如空间使用率,当前用的是哪种收集器等。
命令格式:
jmap [option] vmid

6,jhat:虚拟机堆转储快照分析工具
Sun JDK提供了jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看

7,jstack:java堆栈跟踪工具
jstack(Stack Trace for Java)命令用于生产虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成快照的目的是定位线程出现长时间停顿的原因,如线程死锁,死循环,请求外部资源导致的长时间等待都是导致线程长时间停顿的常见原因。
命令格式:
jstack [option] vmid

在JDK1.5中,java.lang.Thread类新增了一个getAllStackTraces()方法用于获取虚拟机中所有的线程的StackTraceElement对象。使用这个方法可以通过简单的几行代码就完成jstack的大部分功能,在实际项目中也可以用这个方法做个管理页面,随时使用浏览器来查看现场堆栈,代码如下所示:(深入理解java虚拟机第二版源代码)
<%@ page import="java.util.Map%">
<html>
<head>
<title>服务器线程信息</title>
</head>
<body>
<pre>
<%
for(Map.Entry<Thread,StackTraceElement[]> stackTrace:Trhead.getAllStackTraces().entrySet()){
Thread thread=(Thread) stackTrace.getKey();
StackTraceElement[] stack=(StackTraceElement[]) stackTrace.getValue();
if(thread.equals(Thread.currentThread)){
continue;
}
out.print("\n线程:"+thread.getName()+"\n");
for(StackTraceElement element : stack){
out.print("\t"+element+"\n");
}
}
%>
</pre>
</body>
</html>
7,HSDIS:JIT生成代码反汇编(太多了,懒得写)
8,JDK的可视化工具
JConsole和VisualVm
JConsole: Java监视与管理控制台
JConsole(Java Monitiring and Management Console)是一种基于JMX的可视化监视,管理工具。他管理部分的功能是针对JMX MBean进行管理。
1 ,启动JConsole
通过JDK/bin目录下的“jconsole.exe”启动JConsole后,将自动搜索出本机的所有虚拟机进程,不需要用户自己jps查询了。

双击打开其中一个(我的就只有一个)

接下来就可以查看自己关心的运行时数据了









0 0