ExecDemoPartial.java Source code

Java tutorial

Introduction

Here is the source code for ExecDemoPartial.java

Source

import java.io.*;

/**
 * ExecDemo shows how to execute an external program (in this case
 * the UNIX directory lister /bin/ls) and read its output.
 * This version handles the case where the program may exit abnormally.
 */
public class ExecDemoPartial {
    /** The program to run */
    public static final String PROGRAM = "ls";
    /** Set to true to end the loop */
    static boolean done = false;

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

        BufferedReader is; // reader for output of process
        String line;

        final Process p = Runtime.getRuntime().exec(PROGRAM);

        Thread waiter = new Thread() {
            public void run() {
                try {
                    p.waitFor();
                } catch (InterruptedException ex) {
                    // OK, just quit this thread.
                    return;
                }
                System.out.println("Program terminated!");
                done = true;
            }
        };
        waiter.start();

        // getInputStream gives an Input stream connected to
        // the process p's standard output (and vice versa). We use
        // that to construct a BufferedReader so we can readLine() it.
        is = new BufferedReader(new InputStreamReader(p.getInputStream()));

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

        return;
    }
}