jcmd - обрабатывает пользовательские команды при запуске JVM

jcmd Утилита предлагает несколько диагностических команд: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

Можно ли иметь собственные команды и обрабатывать их в работающей JVM?

Что-то вроде: jcmd $PID myCmd

1 ответ

Решение

jcmd обрабатывает только список предопределенных команд JVM. Однако существует несколько способов реализации пользовательских команд управления без jcmd,

  1. Самый простой - просто открыть сокет внутри JVM для прослушивания входящих управляющих сообщений.
  2. В качестве альтернативы вы можете использовать механизм динамического присоединения для загрузки библиотеки агентов в работающий процесс JVM. Для этого есть как Java API, так и собственный интерфейс.
Другие вопросы по тегам