Todavía existe ninguna API pública para esto (ver http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4244896), pero hay soluciones.
Una primera solución sería utilizar un programa externo como ps
y llamarlo usando Runtime.exec()
para obtener el pid :)
Otra se basa en el hecho de que la clase java.lang.Process
es abstracta y que en realidad se consigue una subclase concreta según su plataforma. En Linux, obtendrá un java.lang.UnixProcess
que tiene un campo privado int pid
. El uso de la reflexión, se puede obtener fácilmente el valor de este campo:
Field f = p.getClass().getDeclaredField("pid");
f.setAccessible(true);
System.out.println(f.get(p));
cadena commend = "some_program" es mejor en este caso – pstanton
No es el código real. Solo un fragmento para describir el problema. – Pawka