当前位置:首页 > 开发 > 编程语言 > JDK JVM > 正文

JDK 命令行工具

发表于: 2014-10-22   作者:annan211   来源:转载   浏览次数:
jdk
摘要: JDK 命令行工具 实现在tools.jar文件 1 jps :jps 命令类似于Linux下的ps,但其只用于列出java的进程。 参数 -q 指定jps只输出进程ID 参数 -m 用于输出传递给java进程(主函数)的参数 参数 -l 用于输出主函数的完整路径 参数 -v 可以显示传递给
  JDK 命令行工具 实现在tools.jar文件

 1 jps :jps 命令类似于Linux下的ps,但其只用于列出java的进程。
          参数 -q 指定jps只输出进程ID
         参数 -m 用于输出传递给java进程(主函数)的参数
          参数 -l 用于输出主函数的完整路径  
           参数 -v 可以显示传递给jvm的参数
       通过jps 可以方便的查看Java 进程的启动类、传入参数和jvm参数 等信息。

 2 jstat :jstat 是一个可以用于观察Java应用程序运行时信息的工具。她的功能非常 强 大,可以通过它 查看堆信息的详细情况。基本语法:

   jstat -<option> [-t] [-h<lines>] <vmid> [<interval>] [<count>]

   选项option 可以由一下值构成:
    -class 显示classLoader 的相关信息
    -compiler 显示JIT编译的相关信息
    -GC 显示与GC相关的堆信息
    -gccapacity 显示各个代的容量以及使用情况。
    -gccause 显示垃圾手机相关的信息。
    -gcnew 显示新生代信息
    -gcnewcapacity 显示新生代大小与使用情况。
    -gcold 显示老年代和永久代的信息
    -gcoldcapacity 显示老年代的大小
    -gcpermcapacity 显示永久代的大小
    -gcutil 显示垃圾收集信息(同-gccause)
   -printcompilation 输出JIT编译的方法信息

   -t 参数可以在输出信息钱加上一个 timestamp 列 显示程序的运行时间。
   -h 参数可以在周清醒数据输出时,输出多少行数据后,跟着输出一个表头信息。
   interval 参数用于输出指定输出统计数据的周期 单位为毫秒。
   count 用于指定一共输出多少次数据。


  Fxm: jstat -class -t 2972 1000 2 
 jstat 可以非常详细的查看java应用程序的堆使用情况以及GC情况。



  3 jinfo :jinfo 可以用来查看正在运行的java应用程序的扩展参数,甚至支持在运行时修改部分参数,她的基本语法为 
     jinfo <option> <pid>
  其中 option 可以为以下信息:
  -flag <name> 打印指定jvm的参数值
  -flag [+|-]<name>:设置指定jvm参数的布尔值。
  -flag <name>=<value> 设置指定jvm参数的值。
  很多情况下 java程序不会指定所有的jvm参数,此时,开发人员可能不知道某一个具体的jvm参数的默认值,如果通过参考手册去查找 这个过程是非常艰难的,使用jinfo 开发人员可以很方便的找到jvm参数的当前值。
  jinfo不仅可以查看运行时某一个jvm参数的实际取值,甚至可以在运行时修改部分参数,并使之立即生效。


 4 jmap :jmap 可以生成java 应用程序的堆快照和对象的统计信息。
   下例使用jmap 生成PID 为2972的Java 程序的对象统计信息,并且输出到s.txt文件中
   jmap -histo 2972 >c:\s.txt

 
 5 jhat 使用jhat 工具可以用于分析java 应用程序的堆快照内容。
  jhat c:\heap.hprof
  
 6 jstack :jstack 可用于导出java 应用程序的线程堆栈,其语法为
    jstack [-l] <pid>
   -l 可用于打印锁的附加信息。
  jstack 工具会在控制台输出程序中所有的锁信息,可以使用重定向讲输出保存到文件,
  Fxm: 
       jstack -l 2348 >c:\deadlock.txt

 通过jstack 不仅可以得到线程堆栈,她还能自动进行死锁检查,输出找到的死锁信息。


 7 jstatd :  jdk 命令中 也存在支持对元和曾计算机的监控 例如 jps jstat ,为了启用远程监控,则需要配合使用jstat工具。
   jstatd 是一个RMI服务端程序,她的作用相当于代理服务器,简历本地就三级远程监控工具的通信。jstatd 服务器讲本机的java应用程序信息传递到远程计算机上。

   由于jstatd 程序没有足够的权限,会抛出异常,这里可以使用java的安全策略,为其分配相应的权限 暂时将其保存在jstatd.all.policy文件。
   grant codebase "file:E:/tools/jdk1.6.0.21/lib/tools.jar" {
   permission java.security.AllPermission;
};
 
  然后 使用以下命令再次开启jstatd服务器。
  jstatd -J-D java.security.policy = c:\jstatd.all.policy
  -J参数是一个公共参数,可以为 jps等命令本身设置jvm参数。

 8 hprof 工具
     与前文中介绍的监控工具不同,hprof不是独立的监控工具,他只是一个java agent 工具,它可以用于监控java应用程序在运行时的cpu信息和堆信息。使用java-agentlib:hprof=help 可以查看 hprof的帮助文档。
   
 9 jconsole 命令:
      jconsole 可以查看应用程序的运行情况,监控堆信息、永久区使用情况、类加载情况等。
  
   
   

JDK 命令行工具

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》 在 这里可以找得到这些工具的列表,虽
jps:虚拟机进程状况工具 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main class,class
给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这
JDK命令 一) 引言: 当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具。正
[size=large] 起因:在测试服务器RedHat中启动datacenter时,会概率性地出现卡壳现象,而之前的一个
JDK内置工具使用 一、jps命令(Java Virtual Machine Process Status Tool) 二、jstack命令(Java Sta
jps 用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的
JDK内置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Mach
在开始介绍之前,先介绍几篇写的比较详细的博客,咱们不求最精,一定最全,最省事。 http://blog.cs
系统在生产运行过程中最重要的工作莫过于监控与问题的处理,监控是预防问题产生很重要的手段。在监
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号