jcmd
实用程序提供了多个诊断命令:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html
是否可以使用自定义命令并在正在运行的 JVM 中处理它们?
像这样:jcmd $PID myCmd
jcmd
只处理预定义的JVM命令列表。但是,有多种方法可以在没有jcmd
的情况下实现自定义管理命令。
- 简单的方法是在 JVM 中打开一个套接字来监听传入的控制消息。
- 或者,您可以使用动态连接机制将代理库加载到正在运行的 JVM 进程中。有Java API和本机接口可以做到这一点。