The attached patch addresses problems 1 and 2 by:
1. Using File instead of URL for passing executable filename.
2. Uses a List<String> instead of String to pass command arguments. While serializing the commands arguments into JobConf, it uses \n as delimiter.
The patch does not address the problem 3. Java 6's ProcessBuilder does not have a mechanism to redirect output or error. (ProcessBuilder in Java 7 has a platform independent solution, though). But the current thing using bash works if the windows machine has cygwin.