Running a Program

Problem

You want to run a program.

Solution

Use one of the exec( ) methods in the java.lang.Runtime class.

Discussion

The exec( ) method in the Runtime class lets you run an external program. The command line you give will be broken into strings by a simple StringTokenizer (Section 3.3) and passed on to the operating system’s “execute a program” system call. As a simple example, here is a simple program that uses exec( ) to run kwrite , a windowed text editor program.[59] On MS-Windows, you’d have to change the name to notepad or wordpad, possibly including the full pathname, e.g., c:\\WINDOWS\\NOTEPAD.EXE (double backslashes because the backslash is special in Java strings).

// file ExecDemoSimple.java
public class ExecDemoSimple {
    public static void main(String av[]) throws java.io.IOException { 

        // Run the "notepad" program or a similar editor
        Process p = Runtime.getRuntime(  ).exec("kwrite");

    }
}

When you compile and run it, the appropriate editor window appears:

$ jr ExecDemoSimple
+ jikes +E -d . ExecDemoSimple.java
+ java ExecDemoSimple # causes a KWrite window to appear.
$

Example 26-1 runs the MS-Windows or Unix version of Netscape, assuming Netscape was installed in the default directory. It passes as an argument the name of a help file, offering a kind of primitive “help” mechanism, as displayed in Figure 26-1.

Example 26-1.  ExecDemoNS.java

import com.darwinsys.util.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.*; import ...

Get Java Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.