JDK 命令行工具


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 可以查看应用程序的运行情况,监控堆信息、永久区使用情况、类加载情况等。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

annan211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值