Development Class Java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.*;
/**
 * ExecDemoNS shows how to execute a program from within Java.
 */
public class ExecDemoNS extends JFrame {
  /** The name of the help file. */
  protected final static String HELPFILE = "./help/index.html";
  /** A stack of process objects; each entry tracks one external running process */
  Stack pStack = new Stack();
  /** main - instantiate and run */
  public static void main(String av[]) throws Exception {
    String program = av.length == 0 ? "netscape" : av[0];
    new ExecDemoNS(program).setVisible(true);
  }
  /** The path to the binary executable that we will run */
  protected static String program;
  /** Constructor - set up strings and things. */
  public ExecDemoNS(String prog) {
    super("ExecDemo: " + prog);
    String osname = System.getProperty("os.name");
    if (osname == null)
      throw new IllegalArgumentException("no os.name");
    if (prog.equals("netscape"))
      program = // Windows or UNIX only for now, sorry Mac fans
        (osname.toLowerCase().indexOf("windows")!=-1) ?
        "c:/program files/netscape/communicator/program/netscape.exe" :
        "/usr/local/netscape/netscape";
    else
      program = prog;
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    JButton b;
    cp.add(b=new JButton("Exec"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        runProg();
      }
    });
    cp.add(b=new JButton("Wait"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        doWait();
      }
    });
    cp.add(b=new JButton("Exit"));
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        System.exit(0);
      }
    });
    pack();
  }
  /** Start the help, in its own Thread. */
  public void runProg() {
    new Thread() {
      public void run() {
        try {
          // Get the URL for the Help File
          URL helpURL = this.getClass().getClassLoader().
            getResource(HELPFILE);
          // Start Netscape from the Java Application.
          pStack.push(Runtime.getRuntime().exec(program + " " + helpURL));
        } catch (Exception ex) {
          JOptionPane.showMessageDialog(ExecDemoNS.this,
            "Error" + ex, "Error",
            JOptionPane.ERROR_MESSAGE);
        }
      }
    }.start();
  }
  public void doWait() {
    if (pStack.size() == 0) return;
    try {
      pStack.peek().waitFor();
        // wait for process to complete (does not work as expected for Windows programs)
    } catch (Exception ex) {
      JOptionPane.showMessageDialog(this,
        "Error" + ex, "Error",
        JOptionPane.ERROR_MESSAGE);
    }
    pStack.pop();
  }
}