25.4 Geschwätzige Programme und JConsole 

Seit Version 5 bringt Java einige neue Kommandozeilenprogramme mit, und in Java 6 sind weitere hinzugekommen. Zwar ist im Wesentlichen nur die Laufzeitumgebung java nötig, doch tummeln sich im bin-Verzeichnis der JDK-Installation insgesamt mehr als 40 ausführbare Dateien. Unter ihnen befindet sich zum Beispiel jps, das laufende Java-Instanzen anzeigt:
$ jps
3396 startup.jar
2512 Jps
Eine längere Ausgabe mit -l zeigt, was sich hinter startup.jar verbirgt:
$ jps -l
3396 C:\Programme\eclipse-3.1\eclipse\startup.jar
480 sun.tools.jps.Jps
25.4.1 JConsole 

Die JConsole ist ein Swing-Programm, das sich an die JVM anhängt und die MBean-Informationen grafisch aufbereitet. Beginnen wir mit einem kleinen Programm, das unendlich neue Objekte erzeugt.
Listing 25.3 com/tutego/insel/jmx/Exhibitionism.java
package com.tutego.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 ); } }
Beispiel Vor Java 6 muss auf der Kommandozeile ein Schalter gesetzt sein, damit die JVM von außen auf Anfragen reagiert. Das heißt: Beim Start ist eine Property mit -Dcom. sun.management.jmxremote anzugeben. |
Die JConsole kann einen Kontakt mit Java-Programmen aufnehmen:
$ jconsole
Sie bietet im ersten Dialog an, mit einem Programm zu verbinden, das sich mit dem passenden Schalter geöffnet hat.
Nach der geglückten Verbindung zeigen unterschiedliche Reiter die einzelnen MBean-Informationen. Der erste Reiter zeigt eine Übersicht über interessantere Eigenschaften der Anwendung: