Abel Muiño

home

API java.lang.management

19 Jul 2010

El API java.lang.management permite, desde java 1.5 (y estamos ya camino de la versión 7) explorar varios parámetros de la máquina virtual en la que se ejecuta un programa java.

Coffee and Milk

No es una api muy extensa… partiendo de la clase ManagementFactory podemos obtener las instancias capaces de darnos los datos que nos interesan.

En mi caso, necesitaba comprobar que al lanzar una herramienta, los parámetros pasados a la máquina virtual eran los correctos (varios valores para los tí­picos -Xmx y similares). Esto se consigue muy fácilmente con:

ManagementFactory.getRuntimeMXBean().getInputArguments();

Durante mis breves experimentaciones he llegado a dos conclusiones:

  1. El parámetro -server no es muy fiable. En Snow Leopard aparece como -Xserver, pero en ubuntu no aparece…
  2. La memoria máxima no coincide con el valor esperado de -Xmx (aunque está cerca). Esto es verdad para Runtime.getRuntime().maxMemory() y para su análogo en la ‘’management api’’ ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax()

…y esto es lo que he descubierto hoy. ¿Qué APIs/librerí­as has descubierto tú que te han sacado de un apuro?