Se vuoi farlo in programmazione, facciamo qualcosa del tipo:
// create the registry
Registry rmiRegistry = LocateRegistry.createRegistry(port);
...
// connect to it
JMXConnectorServer connector =
JMXConnectorServerFactory.newJMXConnectorServer(url,
new HashMap<String, Object>(),
ManagementFactory.getPlatformMBeanServer());
// do stuff with it ...
// close the connection
if (connector != null) {
connector.stop();
}
// deregister the registry
if (rmiRegistry != null) {
UnicastRemoteObject.unexportObject(rmiRegistry, true);
}
Ecco il codice completo per la nostra classe JMXServer. Abbiamo problemi a crearne 2 e ad annullarne completamente la registrazione, quindi ci assicuriamo di eseguire i nostri unit test su porte diverse.
Uso questo codice nel mio pacchetto client/servizio SimpleJmx JMX.
Dopo così tante seccature mi rendo conto improvvisamente che rmiregistry viene eseguito in background di shell. Quindi tutto ciò che dobbiamo fare è chiuderlo prima portarlo in primo piano e poi chiuderlo. E ha funzionato.
A proposito, per portarlo in primo piano basta digitare:
% fg
e poi per chiuderlo digita:
Ctrl + c
Questo è tutto. Grazie mille a tutti coloro che hanno cercato di aiutarmi.