Execute external program from Java
- by Saurabh Lalwani
Hi, I am trying to execute a program from the Java code. Here is my code:
public static void main(String argv[]) {
    try {
      String line;
      Process p = Runtime.getRuntime().exec(
          "/bin/bash -c ls > OutputFileNames.txt");
      BufferedReader input = new BufferedReader(
          new InputStreamReader(p.getInputStream()));
      while ((line = input.readLine()) != null) {
        System.out.println(line);
      }
      input.close();
    } catch (Exception err) {
      err.printStackTrace();
    }
}
My OS is Mac OS X 10.6.
If I remove the "> OutputFileNames.txt" from the getRuntime().exec() method, all the file names are printed on the console just fine. But I need it to be printed to a file. 
Also, if I change the command to:
Process p = Runtime.getRuntime().exec(
    "cmd \c dir > OutputFileNames.txt"); 
and run it on Windows, it  runs  and prints the results in the file perfectly fine too.
I have read the other posts for executing another application from Java but none seemed to relate to my problem.
I would really appreciate any help I can get. 
Thanks,