Если вы осуществляете доступ с локального хоста, то можно сделать то, что в этом случае делают JConsole и JVisualVM, а именно с помощью Attach API найти локальный адрес сервера (что вы получите, если вы запустите с -Dcom.sun.management.jmxremote, но не с -Dcom.sun.management.jmxremote.port = N) и подключитесь к нему. В другом ответе Thraidh говорит, что удаленно доступный порт открывается даже в этом случае, что было верно в более ранних версиях, но не было так в течение нескольких лет.
Решение Фредрика работает, но излишне. Вам нужно только определить RMIServerSocketFactory, а не RMISocketFactory (который определяет и клиента, и сервер). Это устраняет необходимость настраивать клиента специально. Код на http://vafer.org/blog/20061010091658 выглядит мне корректно.
Управление "из коробки", созданное с использованием свойств командной строки, таких как -Dcom.sun.management.jmxremote, может продвинуться только до того, как вам нужно будет начать программировать с помощью самого JMX API. Как правило, мы неохотно превращали готовое управление в полноценный параллельный API, поэтому существуют проблемы, подобные этой, которые недоступны. Мы объясняем, как перейти от одного к другому здесь .
Éamonn McManus, JMX Spec Lead