首页 > 其他分享 >JDK命令行工具

JDK命令行工具

时间:2022-10-13 21:05:27浏览次数:60  
标签:选项 快照 JDK dump 虚拟机 线程 命令行 工具

        我们大多数人都知道JDK的bin目录下有“java.exe”、“javac.exe”这两个命令行工具,其实Java为我们提供的工具远不止这两个,这些工具可以帮我们处理应用程序性能问题、定位故障时发挥很大的作用。



一、jps:虚拟机进程状况工具

        可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(LVMID)。

        命令格式:    jps [选项] [hostid]

        选项作用:

                -q:只输出本地虚拟机唯一ID。

                -m:输出传给主类main()函数的参数。

                -l:输出类的限定名,如果进程时jar包,输出jar包路径。

                -v:虚拟机进程启动时JVM参数。

    执行样例:

            

JDK命令行工具_JMAP



二、jstat:虚拟机统计信息监视工具

        用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。

        命令格式: jstat [ 选项 vmid [ interval [s|ms] [count] ] ]

        参数说明:vmid本地虚拟机进程的话与LVMID一致,远程应为[protocol:][//]lvmid[@hostname[:port]/servername]

                        interval代表查询间隔,默认ms;count代表查询次数。如果不加这两个参数,默认查询一次。

        例如:每1秒查询一次进程7844的垃圾收集情况,一种查询10次:jstat -gc 7844 1s 10

        选项作用:

               

JDK命令行工具_JDK_02

       具体输出结果含义参考https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html



三、jinfo:Java配置信息工具

        实时地查看和调整虚拟机各项参数。

        命令格式:jinfo [ 选项 ] pid

        查看堆内存配置大小如下:

        

JDK命令行工具_jStat_03



四、jmap:Java内存映像工具

        主要用于生成堆转储快照(一般称为heapdump或dump文件)

        命令格式:jmap [ 选项] vmid

        选项作用:

                -dump:生成Java堆转储快照。格式为jmap  -dump:[live,]format=b,file=<fileName> vmid,其中live子参数说明是否只dump出存活对象。

                -finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象。

                -heap:显示Java堆详细信息,如使用那种回收器、参数配置、分代状况等。

                -histo:显示堆中对象统计信息,包括类、实例数量、合计容量。

                -F:当虚拟机进程堆-dump选项没有响应时,可以使用这个选项强制生成dump快照。

    生成dump快照的例子:

        

JDK命令行工具_Java_04



五、jhat:虚拟机堆转储快照分析工具

        与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。(基本不会用这个来分析,都用专业的软件)

        使用jhat分析上一步生成的dump文件:

        

JDK命令行工具_JDK_05

    显示“Server is ready.”的提示后,用户在浏览器中键入http://localhost:7000/就可以看到分析结果,如下所示

        

JDK命令行工具_JMAP_06



六、jstack:Java堆栈跟踪工具

        用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。

        命令格式:jstack [选项] vmid

        选项作用:

                -F:强制输出线程堆栈。

                -l:除堆栈外,显示关于锁的附加信息。

                -m:如果调用到本地方法的话,可以显示C/C++的堆栈。

 

标签:选项,快照,JDK,dump,虚拟机,线程,命令行,工具
From: https://blog.51cto.com/caofanqi/5754592

相关文章

  • MYSQL-->客户端常用工具指令
    mysql这个mysql指的是mysql的客户端管理工具语法mysql选项数据库选项内容-u指定用户名-p指定密码-h指定ip地址-P指定端口-e执行SQL语句并退出-e选项可......
  • 文字语音转换工具
    在线文字转语音工具-UU在线工具(uutool.cn)在线文字转语音工具,可以将文字快速转换成语音,支持中英文混合语音转换,可用于阅读新闻,阅读语音红包等场景,转换成语音后支持在......
  • Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
    上篇博客我们介绍了​​虚拟机监控和分析命令行工具​​,由于其不够直观,不是很容易排查问题,那么本篇博客我们就来介绍几个可视化工具。1、JConsoleJConsole(JavaMoni......
  • Tabby,一款老外都在用的 SSH工具,竟然还支持网页操作
    会编程的蜗牛主要分享java编程,也会涉及其他方向的技术分享。1篇原创内容公众号序言各位好啊,我是会编程的蜗牛,作为java开发者,或者说编程人员,程序员的我们,Linux服务器总......
  • JavaScript 常用 工具类
    /***工具类*2022年7月8日22:52:24*//***空校验null或""都返回true*/exportfunctionisEmpty(obj){if((typeofobj==='string')){......
  • Java开发工具介绍
    开发工具IntelliJIDEAidea指定启动参数、环境变量 设置启动参数的意义就是当启动程序时,程序会优先读取idea的配置参数,这样就可以不用修改配置文件,参见:https://blog......
  • MySQL——常用工具和日志
    一、MySql中常用工具1.1、mysql该mysql不是指mysql服务,而是指mysql的客户端工具。语法:mysql[options][database]连接选项参数: -u,--user=name指定用户名 -p,......
  • 基于SqlSugar的开发框架循序渐进介绍(15)-- 整合代码生成工具进行前端界面的生成
    在前面随笔《基于SqlSugar的开发框架循序渐进介绍(12)--拆分页面模块内容为组件,实现分而治之的处理》中我们已经介绍过,对于相关的业务表的界面代码,我们已经尽可能把不同的业......
  • 手机网页调试工具-兼容IOS与安卓
    最近在开发微信公众号网页的时候,由于手机端的各种不适配或者机型的问题出现了很多莫名其妙的bug,但这些bug只会在固定的机型或者部分手机复现,电脑端调试以及大部分手机都是没......
  • 注解_JDK内置注解与注解_自定义注解_格式&本质
    注解_JDK内置注解JDK中预定义的一些注解基本内置注解@Override:检测被该注解标注的方法是否继承自父类(接口)的@Deprecated:该注解标注内容,表示已过时......