Runtime's exec() method is not redirecting the output
Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt"); I am running this command using Java. The script is running but it's not redirecting its stream to the file. Moreover, the file out.txt is not getting created. This script runs fine if I run it on shell. Any ideas? You need to use ProcessBuilder to redirect. ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh"); builder.redirectOutput(new File("out.txt")); builder.redirectError(new File("out.txt")); Process p = builder.start(); // may throw IOException Peter Lawrey When you run a command, there is no shell