如果想要了解更多的信息,参阅代码里面给的链接
下面是这个正确的例子
- public class RuntimeExec {
- /**
- * Runtime execute.
- *
- * @param cmd the command.
- * @return success or failure
- * @see {@link http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4}
- * @since 1.1
- */
- public static boolean runtimeExec(String cmd) {
- try {
- Process proc = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd});
- // any error message?
- StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR");
- // any output?
- StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT");
- // kick them off
- errorGobbler.start();
- outputGobbler.start();
- if (proc.waitFor() != 0) {
- System.err.println("执行"" + cmd + ""时返回值=" + proc.exitValue());
- return false;
- } else {
- return true;
- }
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- static class StreamGobbler extends Thread {
- InputStream is;
- String type;
- StreamGobbler(InputStream is, String type) {
- this.is = is;
- this.type = type;
- }
- public void run() {
- try {
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
- String line = null;
- while ((line = br.readLine()) != null)
- System.out.println(type + ">" + line);
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- }
- }