[TOC]
# 介绍
向某一个虚拟机示例执行命令,比如你当前是虚拟机A,需要向虚拟机B执行命令,则需要次类相关方法。封装于`jcmd`
# 示例
~~~
import beifengtz.vmconsole.JCmd;
import beifengtz.vmconsole.entity.jcmd.JCmdEnum;
public class Test {
public static void main(String[] args)throws Exception{
JCmd.executeCommand(8888, JCmdEnum.GC_RUN);
}
}
~~~
# 方法
| 名称 | 参数 | 返回值 | 含义 |
| --- | --- | --- | --- |
| listProcess() | 无 | JCmdResult | 列出虚拟机进程列表 |
| ~~listCommands()~~ | int vmId(虚拟机ID,JpsCmd可获取)| JCmdResult | 列出虚拟机支持的命令,**后期将取消,由JCmdEnum对象代替** |
| executeCommand() | 1. int vmId(虚拟机ID,JpsCmd可获取)<br/>2. JCmdEnum jCmdEnum(命令枚举类)| JCmdResult| 向某一个虚拟机实例执行命令|
| ~~executeCommand()~~ | 1. int vmId(虚拟机ID,JpsCmd可获取)<br/>2. JCmdEnum... jCmdEnum(命令枚举类数组)| JCmdResult| 向某一个虚拟机实例执行批量命令,**后期将取消**|
# 结果对象
```java
|—— beifengtz.vmconsole.entity.JvmResult
|—— beifengtz.vmconsole.entity.jcmd.JCmdResult
|—— beifengtz.vmconsole.entity.jcmd.JCmdProcess
|—— beifengtz.vmconsole.entity.jcmd.JCmdEnum
```
## JCmdEnum
~~~java
JFR_STOP("JFR.stop"),
JFR_START("JFR.start"),
JFR_DUMP("JFR.dump"),
JFR_CHECK("JFR.check"),
VM_NATIVE_MEMORY("VM.native_memory"),
VM_CHECK_COMMERCIAL_FEATURES("VM.check_commercial_features"),
VM_UNLOCK_COMMERCIAL_FEATURES("VM.unlock_commercial_features"),
MANAGEMENTAGENT_STOP("ManagementAgent.stop"),
MANAGEMENTAGENT_START_LOCAL("ManagementAgent.start_local"),
MANAGEMENTAGENT_START("ManagementAgent.start"),
GC_ROTATE_LOG("GC.rotate_log"),
THREAD_PRINT("Thread.print"),
GC_CLASS_STATS("GC.class_stats"),
GC_CLASS_HISTOGRAM("GC.class_histogram"),
GC_HEAP_DUMP("GC.heap_dump"),
GC_RUN_FINALIZATION("GC.run_finalization"),
GC_RUN("GC.run"),
VM_UPTIME("VM.uptime"),
VM_FLAGS("VM.flags"),
VM_SYSTEM_PROPERTIES("VM.system_properties"),
VM_COMMAND_LINE("VM.command_line"),
VM_VERSION("VM.version");
~~~
## JCmdProcess
| 属性 | 类型 | 含义 |
| --- | --- | --- |
| vmId | int | 虚拟ID |
| content | String | 虚拟机进程信息内容 |
## JCmdResult
| 属性 | 类型 | 含义 |
| --- | --- | --- |
| processes | List\<JCmdProcess\> | 进程信息列表 |
| result| String | 命令执行结果 |