java基础-jdk工具包

时间:2021-06-25 20:16:32

1. 标准工具

这些工具都是JDK提供的,通常都是长期支持的工具,JDK承诺这些工具比较好用。不同系统、不同版本之间可能会有差异,但是不会突然就有一个工具消失。

1.1 基础包 (extcheck, jar, java, javac, javadoc, javap)

工具 简述 常用命令
javac 编译.java源文件 javac hello.java
java 运行.class字节码或.jar文件 java hello.class, java -jar my.jar
jar 创建和管理Jar文件 jar -cvf my.jar .\*
javadoc API文档生成器 javadoc hello.java 生成html文档
javap 根据Java字节码反编译为Java源代码 javap hello.class
jdb Java调试器(Java Debugger)

1.2 故障排查,分析,监控和管理 (jcmd, jconsole, jmc, jvisualvm)

工具 简述 常用命令
jcmd 发送诊断命令到JVM jcmd
jconsole 监控本地和远程jvm的图形工具 jconsole
jvisualvm 查看java程序信息 jvisualvm

jcmd命令

查看进程 jcmd -l

命令:jcmd -l
描述:查看 当前机器上所有的 jvm 进程信息

jcmd 
jcmd -l
jps 

查看性能统计 jcmd pid PerfCounter.print

命令:jcmd pid PerfCounter.print
描述:查看指定进程的性能统计信息。

列出当前运行的 java 进程可以执行的操作 jcmd PID help

命令:jcmd PID help

查看具体命令的选项 jcmd 11772 help JFR.dump

如果想查看命令的选项,比如想查看 JFR.dump 命令选项,可以通过如下命令:
jcmd 11772 help JFR.dump

通知垃圾回收 jcmd PID GC.run

命令:jcmd PID GC.run
描述:对 JVM 执行 java.lang.System.gc()
告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的。

强制垃圾回收 jcmd PID GC.run_finalization

命令:jcmd PID GC.run_finalization
描述: 对 JVM 执行 java.lang.System.runFinalization()
执行一次finalization操作,相当于执行java.lang.System.runFinalization()

---


jconsole工具使用

jconsole介绍

  • Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。
  • 它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。
  • 从命令行直接输入jconsole,打开客户端

jvisualvm工具

jvisualvm介绍

  • VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的).
  • 从命令行直接输入jvisualvm,打开客户端

参考: