Java命令
作为一个合格的开发人员,不仅要能写好代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,
一般没办法debug,所以我们需要借助一些常用命令来查看运行时的具体情况,这些运行时信息包括但不限于运行日志、异常堆栈、堆使用情况、GC情况、JVM参数情况、线程情况等。
那么我们来介绍常用的Java命令,这些命令都是被存放在JDK安装目录的bin目录中,下面来介绍一下相关命令以及具体使用方式
jps:显示所有java进程pid
Q:quit man帮助命令退出使用q即可
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况
jps类似linux/unix平台上上的ps命令,但是jps只查找查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。
学习一个命令,先来看看帮助,使用jps -help查看帮助:
参数介绍:
- -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
- -m 输出传递给main 方法的参数,在嵌入式jvm上可能是null
- -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
- -v 输出传递给JVM的参数
常用指令
- jps:显示当前用户的所有java进程的PID
- jps -v 3331:显示虚拟机参数
- jps -m 3331:显示传递给main()函数的参数
- jps -l 3331:显示主类的全路径
jinfo:实时查看和调整虚拟机参数
配置信息包括JAVA系统参数和命令行参数,如果运行在64位虚拟机上运行,需要指定-J-d64参数,
如:jinfo -J-d64 -sysprops pid
由于打印jvm常用信息可以使用Jps命令,并且在后续的java版本中可能不再支持(注:jdk8中已经不支持该命令)
查看帮助:jinfo -help
常用指令
- info -flag CMSIniniatingOccupancyFration 1444:查询CMSIniniatingOccupancyFration参数值
jstat:监控虚拟机各种运行状态信息
jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。
查看帮助: jstat -help
利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。
jstat -<option> [-t] [-h<lines>] <vmid> [