ExecDemoWait.java Source code

Java tutorial

Introduction

Here is the source code for ExecDemoWait.java

Source

import java.io.*;

/**
 * ExecDemo shows how to execute an external program
 * read its output, and print its exit status.
 */
public class ExecDemoWait {

    public static void main(String argv[]) throws IOException {

        // A Runtime object has methods for dealing with the OS
        Runtime r = Runtime.getRuntime();
        Process p; // Process tracks one external native process
        BufferedReader is; // reader for output of process
        String line;

        // Our argv[0] contains the program to run; remaining elements
        // of argv contain args for the target program. This is just
        // what is needed for the String[] form of exec.
        p = r.exec(argv);

        System.out.println("In Main after exec");

        // getInputStream gives an Input stream connected to
        // the process p's standard output. Just use it to make
        // a BufferedReader to readLine() what the program writes out.
        is = new BufferedReader(new InputStreamReader(p.getInputStream()));

        while ((line = is.readLine()) != null)
            System.out.println(line);

        System.out.println("In Main after EOF");
        System.out.flush();
        try {
            p.waitFor(); // wait for process to complete
        } catch (InterruptedException e) {
            System.err.println(e); // "Can'tHappen"
            return;
        }
        System.err.println("Process done, exit status was " + p.exitValue());
        return;
    }
}