23.3 JConsole
 
Seit der Version 5 bringt Java einige neue Kommandozeilenprogramme mit. Zwar sind oft nur javac und java nötig, doch tummeln sich im bin-Verzeichnis der JDK-Installation insgesamt 35 EXE-Dateien. Neu dabei ist zum Beispiel jps, das laufende Java-Instanzen anzeigt.
C:\Programme\Java\jdk1.5.0\bin> jps
3396 startup.jar
2512 Jps
Eine längere Ausgabe zeigt, was sich hinter startup.jar verbirgt:
C:\Programme\Java\jdk1.5.0\bin> jps -l
3396 C:\Programme\eclipse-SDK-3.1RC1-win32\eclipse\startup.jar
480 sun.tools.jps.Jps
Die JConsole ist ein Swing-Programm, das sich an die JVM anhängt und die MBean-Informationen grafisch aufbereitet. Damit sich die JVM die Daten allerdings abgreifen lässt, ist beim Start die Property com.sun.management.jmxremote zu setzen. Beginnen wir mit einem kleinen Programm, das hungrig unerlässlich neue Objekte erzeugt.
Listing 23.2
com/javatutor/insel/jmx/Exhibitionism.java
package com.javatutor.insel.jmx;
import javax.swing.*;
public class Exhibitionism
{
public static void main( String[] args )
{
new Thread() {
@Override public void run() { while ( true ) { new JTree(); } }
}.start();
JOptionPane.showMessageDialog( null, "OK bei Ende" );
System.exit( 0 );
}
}
Das Programm starten wir mit dem richtigen Schalter:
C:\08_Funktionsbibliothek> javaw -Dcom.sun.management.jmxremote com.javatutor.
insel.jmx.Exhibitionism

Der Schalter lässt sich unter Eclipse für ein gestartetes Programm unter Run | Run… im zweiten Reiter Arguments bei dem VM arguments einstellen.
Dann kann die JConsole Kontakt aufnehmen:
jconsole $ jconsole
Sie bietet im ersten Dialog an, zu einem Programm zu verbinden, das sich mit dem passenden Schalter geöffnet hat.
 Hier klicken, um das Bild zu Vergrößern
Nach der geglückten Verbindung zeigen unterschiedliche Reiter die einzelnen MBean-Informationen. Der Speicher-Reiter zeigt eine rege Aktivität unserer Anwendung an.
 Hier klicken, um das Bild zu Vergrößern
|