(Я предполагаю, что вы не спрашиваете о формате строки, просто о том, как найти порт.)
Вы можете договориться о каком-то контракте на порт (ы) jmx. Если бы у вас было 2+ jvms на локальном хосте, у них, очевидно, были бы разные порты, поэтому клиент jmx не может ни угадать, ни сканировать порты (плохой этикет). Может быть, диапазон портов, к которому нужно вслепую пытаться подключиться.
Вы можете положиться на что-то другое, например на широковещательный пакет или соглашение о многоадресном канале, чтобы запросить ваши программы, чтобы они обнаружили, что они существуют на каком-то порту jmx, но вы бы Я должен запрограммировать себя и ожидать, что jvms запустит такой модуль.
В противном случае на linux, просмотрев / proc / ... вы можете обнаружить процессы (фильтрующие только java) и какой у них порт. открыт, или некоторые исполняемые exe c backflips с netstat (linux или windows), вы можете иметь список прослушивающих сокетов. Но опять же, это не означает, что эти сокеты являются службой JMX - вам все еще нужно соглашение, если вы не хотите проверять и обрабатывать процессы произвольных портов.
Однако, если вы можете перечислить процессы, вы, вероятно, сможете получить их командные строки и найдите java и их собственные системные свойства jmx, раскрывающие используемый ими порт ...
Несколько вещей, которые можно попробовать. Надеюсь, это поможет.