Lo que vos estás queriendo hacer está muuuuy acoplado al sistema operativo, lo cual me da una razón para decirte que yo me plantearía hacer el programa en visual c++ o vb.
Le sumo también el hecho de que no estoy muy seguro como aparecería tu programa en el task manager si está escrito en java, y lo que me parece es que lo más probable es que lo que te aparezca sea la virtual machine como task y dentro de la misma estará corriendo tu programa, por lo que a lo sumo podrías llegar a querer controlar que no exista más de una instancia de tu programa dentro de la misma virtual machine, pero si levanto dos virtual machine, puedo tener dos instancias corriendo en el sistema operativo de tu programa. Esto me da otro motivo para decirte que si queres hacer algo así, utilices otro lenguaje que te será más llevadero.
Espero que mis cuestionamientos ayuden de algo. ;-)
Claudio