Let's say you have a Java program, testjmx.TestIt, on your machine that has IP address 192.168.1.148. Run it like so:
mwood@workstation:~/workspace/testjmx/bin$ java \ -Dcom.sun.management.jmxremote.port=1234 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname=192.168.1.148 \ testjmx.TestIt
The first three defines are well-documented; the last define, where you spell out to RMI what host it's runing on, is not very well documented, but there's a note about it here:
The hostname that you define in the
java.rmi.server.hostname system property must match exactly the
hostname you use when connecting from JVisualVM.
Then, on another machine, just do this:
Add a new JMX connection to
localhost:1234, then find that new connection in the left-hand
pane, and double-click on it to start monitoring.