Talvez es necesario acceder al listado de los procesos para monitorizar o controlar si una applicación está corriendo o no, o por ejemplo para evitar que hayan más de una instancia del mismo proceso corriendo en el servidor.

Java nos permite de hacer esto atravéz  Runtime.getRuntime().exec(…) de optener el listado de nuestros procesos.

Para Windows:

try{
Process proc = Runtime.getRuntime().exec("wmic.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream());
oStream .write("process where name='nuestroProceso.exe'");
String line;
while ((line = input.readLine()) != null) 
{ 
  if (line.contains("nuestroProceso.exe")) 
     return true; 
} 
input.close(); 
} 
catch (Exception ex) 
{ 
// handle error 
}

Para Linux:

import java.io.*;
...
try{
Process p = Runtime.getRuntime().exec(new String[] { "bash", "-c", "ps aux | grep nuestroProceso" });
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null)
{
      if (line.contains("nuestroProceso "))
      {
	 // el processo que estas buscando esta corriendo
      }
}
catch (Exception e)
{
    // handle error
}

En el caso de linux, desde Java simplemente lanzamos el comando “ps” y podemos gestionar el output.