Buenas,
Yo utilizaria ProcessBuilder, que permite controlar mas a fondo la ejecucion del proceso externo.
Código Java:
Ver originalProcess process
= new ProcessBuilder
("directorio/ejecutable",
"param1",
"param2").
start();
Ademas permite hacer algunas cosas no posibles con exec() como configurar las variables de entorno o el directorio de ejecucion
Mas info aqui:
http://www.profesorfalken.com/posts/6 http://www.profesorfalken.com/posts/7
Un saludo