/* Sample to start multiple threads, each of which runs */
/* a specified program                                  */

public class Run2 {

  public static void main(String args[]) {
    int argC = args.length;

    RunUnit ru[] = new RunUnit[argC];

    for (int i=0; i<argC; i++) {
      System.out.println("starting thread for " + args[i] );
      ru[i] = new RunUnit(args[i]);
    }

    System.out.println("enter q to end");
    do {
      try {
        if ( (char) System.in.read() == 'q' )
          System.exit(1);
      }
      catch  (Exception e) {
         System.out.println(e.toString());
      }
    } while (true);
  }
}

class RunUnit extends Thread {
    private String sProg;

    public RunUnit(String s) {
      sProg = s;
      run();
    }

    public void run() {
      Runtime rt = Runtime.getRuntime();
      try {
        rt.exec(sProg);
        System.out.println(sProg + " invoked");
      }
      catch (Exception e) {
        System.out.println(e.toString() );
      }
    }

}
