Illustration einer tropischen Insel mit Palmen und einem hohen Berg

Java Blog für Programmierer

Paket sun.jvmstat: Wie man selbst ein jps schreibt

· Christian Ullenboom

jps (Java Virtual Machine Process Status Tool) ist ein Utility, welches neu bei Java 5 ist. Es zeigt die aktuellen laufenden Java VM-Instanzen an.

$ jps 2256 2960 Jps$ jps -mlvV 1692 sun.tools.jps.Jps -mlvV -Dapplication.home=C:\Programme\Java\jdk1.6.0 -Xms8m 2256  -Xbootclasspath/a:C:\PROGRA~1\Java\JRE16~1.0\lib\deploy.jar;C:\PROGRA~1\Java\JRE16~1.0\lib\plugin.jar -Xmx96m ...

Um ein eigenes jps zu schreiben ist, ist das Java-Archiv tools.jar aus dem lib-Verzeichnis des JDK im Klassenpfad nötig. Dort gibt es das zentrale (interne!) Paket sun.jvmstat.

import java.util.Set;import sun.jvmstat.monitor.*;public class T{ @SuppressWarnings("unchecked") public static void main( String[] args ) throws Exception {  MonitoredHost monitoredhost = MonitoredHost.getMonitoredHost( "//localhost" );  for ( int id : (Set) monitoredhost.activeVms() ) {   VmIdentifier vmidentifier = new VmIdentifier( "" + id );   MonitoredVm monitoredvm = monitoredhost.getMonitoredVm( vmidentifier, 0 );   System.out.printf( "%d %s %s %s%n", id,   MonitoredVmUtil.mainClass( monitoredvm, true ),   MonitoredVmUtil.jvmArgs( monitoredvm ),   MonitoredVmUtil.mainArgs( monitoredvm ) );  } }}

Die Ausgabe ist

2984  -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -XX:MaxPermSize=256M null 360 T -Dfile.encoding=Cp1252 null 2256  -Xbootclasspath/a:C:\PROGRA~1\Java\JRE16~1.0\lib\deploy.jar;C:\PROGRA~1\Java\JRE16~1.0\lib\plugin.jar -Xmx96m ...

Nützlich kann das ganze sein, um etwa herauszufinden, ob schon ein Exemplar des aktuellen Programms läuft. Denn das zweite Programm findet über mainClass() zweimal die gleiche Klasse.

Kategorien: Allgemein

← Alle Beiträge