Vamos por partes...
1. Ejecutar un script externo.
Runtime.exec() te va a permitir ejecutar 1 comando externo. No te permite ejecutar un pipe de varios comandos. Así que si lo que vas a tener que ejecutar es eso, tendrás que hacer un script externo. O alternativamente puedes ejecutar un shell como comando externo y escribir en ese shell.
Ejemplo aquí.
2. Ejecutar con argumentos.
exec no te deja ejecutar un comando así como quieras. Quiero decir, no pones ahí una cadena con lo que sea y lo ejecutas. Si el comando que quieres ejecutar usa varios argumentos o argumentos con espacios, entonces en lugar de pasarle una cadena, tendrás que pasarle un Array de cadenas con el comando y los parámetros.
Ejemplo aquí.
3. Que no veas que se ejecute no quiere decir que no se ejecute. Sólo quiere decir que tú no lo ves.
El comando se ejecuta en su propio entorno, lo que quiere decir que no necesariamente tiene acceso a tu stdin y stdout. Si lo que quieres es leer la salida de lo que ejecutes, entonces tendrás que leerlo explícitamente.
Ejemplo aquí.
Espero que te sea de ayuda. Combina lo que se ve en los 3 ejemplos según necesites.