Как найти порт JMX на сервере? - PullRequest
22 голосов
/ 23 сентября 2011

Я уверен, что смогу понять, смогу ли я увидеть параметры JAVA OPTS. Я хочу контролировать сервер hornetq с помощью Jconsole, поэтому мне нужен номер порта.

Я помню, что когда я подключался к ней некоторое время назад, я использовал какую-то команду, такую ​​как java grep и т. Д.

Ответы [ 4 ]

29 голосов
/ 23 сентября 2011

Если вы знаете номер процесса, вы можете использовать netstat , чтобы найти, какие порты прослушивает программа с чем-то вроде

$ netstat -apn | grep <proc num>

Стандартный порт для прослушивателей JMX - 1099.

13 голосов
/ 22 октября 2012

Я знаю, что это старый пост.Вы также можете получить подробную информацию из системы:

String jmx1 = System.getProperty("com.sun.management.jmxremote");
String jmx2 = System.getProperty("com.sun.management.jmxremote.port");
String jmx3 = System.getProperty("com.sun.management.jmxremote.authenticate");
String jmx4 = System.getProperty("com.sun.management.jmxremote.ssl");
String jmx5 = System.getProperty("java.rmi.server.hostname");
4 голосов
/ 24 сентября 2011

Вы также можете вручную установить порт из настроек командной строки JVM, например:

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=1616
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
2 голосов
/ 23 сентября 2011

Вы можете программно получить доступ к аргументам JVM, например: :

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
...       
RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = RuntimemxBean.getInputArguments();
...