The Java Program: DaemonInput.java

  1 import java.lang.Thread;
  2 
  3 import java.io.*;
  4 
  5 class DaemonInput extends Thread {
  6 
  7    public void run () {
  8       final BufferedReader reader =
  9          new BufferedReader (new InputStreamReader (System.in));
 10 
 11       try {
 12          while (true) {
 13             System.out.println ("Please enter a line ...");
 14             final String line = reader.readLine();
 15             if (line==null) break;
 16             System.out.println ("Echo:  " + line);
 17          }
 18       } catch (IOException ex) {
 19          ex.printStackTrace ();
 20       }
 21    }
 22 
 23    public static void main (String[] args) throws InterruptedException {
 24       final Thread d = new DaemonInput();
 25 
 26       /*
 27          Marking a "Thread" as a daemon thread means that it should
 28          automatically be killed when no other (non-daemon) application
 29          thread remains to be executed.
 30       */
 31       d.setDaemon (Boolean.valueOf (args[0]).booleanValue());
 32 
 33       d.start ();
 34 
 35       Thread.sleep (9000);
 36    }
 37 
 38 }