FileDocCategorySizeDatePackage
ExecDemoPartial.javaAPI DocExample1350Sat Mar 13 14:24:02 GMT 2004None

ExecDemoPartial

public class ExecDemoPartial extends Object
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.

Fields Summary
public static final String
PROGRAM
The program to run
static boolean
done
Set to true to end the loop
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] argv)


	       

		BufferedReader is;	// reader for output of process
		String line;
		
		final Process p = Runtime.getRuntime().exec(PROGRAM);

		Debug.println("exec", "In Main after exec");


		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);
		
		Debug.println("exec", "In Main after end of read loop");

		return;