---
title: 'Paket sun.jvmstat: Wie man selbst ein jps schreibt'
url: 'https://tutego.de/blog/javainsel/2008/05/paket-sun-jvmstat-wie-man-selbst-ein-jps-schreibt'
markdown: 'https://tutego.de/blog/javainsel/2008/05/paket-sun-jvmstat-wie-man-selbst-ein-jps-schreibt.md'
date: '2008-05-27'
description: '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\Jav…'
taxonomy:
  category:
    - Allgemein
---

# Paket sun.jvmstat: Wie man selbst ein jps schreibt

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Paket sun.jvmstat: Wie man selbst ein jps schreibt

27.05.2008 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

[jps (Java Virtual Machine Process Status Tool)](http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html) ist ein Utility, welches neu bei Java 5 ist. Es zeigt die aktuellen laufenden Java VM-Instanzen an.

```text
$ 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](http://www.openjdk.org/groups/serviceability/jvmstat/index.html).

```java
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

```text
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](https://tutego.de/blog/javainsel/category/allgemein/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Spring-Framework gibt's nicht mehr](https://tutego.de/blog/javainsel/2008/05/spring-framework-gibts-nicht-mehr.md)
- Next: [Cargo: Automatisch Web-/JavaEE-Container starten/stoppen und Module Deployen](https://tutego.de/blog/javainsel/2008/05/cargo-automatisch-web-javaee-container-startenstoppen-und-module-deployen.md)
