In [this question](https://stackoverflow.com/questions/3198881/do-commands-run-from-current-directory-in-a-shell-script) it shows that when you run a shell command from Java, it runs from the current directory. When I run the command `javac Program.java` from my program, it shows the error (from the standard error stream):

```
javac: file not found: Program.java
Usage: javac <options> <source files>
use -help for a list of possible options

```

However, when I run the same exact command from the actual Terminal, it works fine and saves the .class file in the default directory. This is the code:

```
Runtime rt = Runtime.getRuntime();
String command = "javac Program.java";
Process proc = rt.exec(command);

BufferedReader stdInput = new BufferedReader(new 
     InputStreamReader(proc.getInputStream()));

BufferedReader stdError = new BufferedReader(new 
     InputStreamReader(proc.getErrorStream()));

// read the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}
proc.waitFor();

```

Any ideas why it works when I type it in the actual Terminal, but not when I run it from my program? I am running a Max OS X Mountain Lion (10.6)

Thanks