Hola...
Vamos a ver:
Cuando llamas al método exec de Runtime estás generando un objeto de la clase Process. Si echas un vistazo verás que es una clase abstracta, pero que tiene un método waitFor(), que sirve para que la hebra que lo invoca quede en espera hasta que la invocación del runtime finalice. No sé exactamente cuándo finalizará, si es en la primera entrada/salida o si es cuando ha dado una salida, pero bueno, eso lo puedes ver fácilmente.
Espero que te sirva.
En cuanto al path, suele ser el mismo en el que se sitúa la clase principal de tu programa.
Un saludo.
Silverfox