jcmd 工具在 Java 9 中的意义是什么?


jcmd”是 JVM 诊断工具,它是一个命令行工具,用于对本地计算机上给定的 JVM 运行诊断命令。从Java 7版本开始,此工具已包含在 JDK 安装中,并且可以使用“%java_home%\bin\jcmd.exe”程序文件来表示。如果我们在“path”环境变量中包含“%java_home%\bin”目录,则可以运行“jcmd -h”命令以查看以下所有选项的完整列表

C:\Users\User>jcmd -h
Usage: jcmd
   or: jcmd -l
   or: jcmd -h

   command must be a valid jcmd command for the selected jvm.
   Use the command "help" to see which commands are available.
   If the pid is 0, commands will be sent to all Java processes.
   The main class argument will be used to match (either partially
   or fully) the class used to start Java.
   If no options are given, lists Java processes (same as -l).

   PerfCounter.print display the counters exposed by this process
   -f read and execute commands from the file
   -l list JVM processes on the local machine
   -h this help

示例

public class JCmdToolTest {
   public static void main(String args[]) {
      Runtime runtime = Runtime.getRuntime();
      System.out.println("Free memory: " + runtime.freeMemory());
      System.out.println("Total memory: " + runtime.totalMemory());
      try {
         Thread.sleep(5000);
      } catch(InterruptedException e) {
      }
   }
}

输出

Free memory: 65454560
Total memory: 67108864


我们可以使用“jcmd -l”命令列出本地计算机上运行的所有 JVM,然后使用输出中的PID或类main来识别 JVM。

C:\Users\User>jcmd -l
6108 jdk.jcmd/sun.tools.jcmd.JCmd -l

更新于: 2020 年 4 月 29 日

111 次浏览

开启您的 职业生涯

完成课程以获得认证

开始
广告