Je suis sûr que je peux le découvrir si je peux voir les paramètres Java OPTS. Je veux surveiller un serveur hornetq en utilisant Jconsole, j'ai donc besoin du numéro de port.
Je me souviens avoir utilisé une commande comme Java grep, etc. lorsque je me suis connecté il y a quelque temps).
Si vous connaissez le numéro de processus, vous pouvez utiliser netstat pour trouver sur quels ports le programme écoute avec quelque chose comme
$ netstat -apn | grep <proc num>
Le port conventionnel pour les écouteurs JMX est le 1099.
Je sais que c'est un vieux poste. Vous pouvez également obtenir les détails du système:
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");
Vous pouvez également définir manuellement le port à partir des paramètres de ligne de commande JVM, par exemple:
-Dcom.Sun.management.jmxremote=true
-Dcom.Sun.management.jmxremote.port=1616
-Dcom.Sun.management.jmxremote.authenticate=false
-Dcom.Sun.management.jmxremote.ssl=false
Vous pouvez accéder par programmation aux arguments JVM comme ceci :
import Java.lang.management.ManagementFactory;
import Java.lang.management.RuntimeMXBean;
...
RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> arguments = RuntimemxBean.getInputArguments();