Runtime.getRuntime().exec("ls > ~/1.txt")
执行后,1.txt还是空的。
为了解决这个问题,有人想出了一个很轻巧的办法:
http://www.codefutures.com/weblog/andygrove/2008/06/generated-script-approach-to-running.html
// generate a script file containg the command to run final File scriptFile = new File("/tmp/runcommand.sh"); PrintWriter w = new PrintWriter(scriptFile); w.println( "#!/bin/sh" ); w.println( cmd ); w.close(); // make the script executable Process p = Runtime.getRuntime().exec( "chmod +x " + scriptFile.getAbsolutePath() ); p.waitFor(); // execute the script p = Runtime.getRuntime().exec( scriptFile.getAbsolutePath() ); p.waitFor(); }