Java has several methods of running programs written in other
languages. You can invoke a compiled program or executable script using
Runtime.exec( ) , as I'll describe in Recipe 26.1. Or you can drop
down to C level with Java's "native code" mechanism and call compiled functions written
in C/C++. From there, you can call to functions written in
just about any language. Not to mention that you can contact programs
written in any language over a socket (see Chapter
17), with HTTP services (see Chapter 18), or with Java clients in
RMI or CORBA clients in a variety of languages (see Chapter 22).
There is an element of system dependency here, of course. You can only run Windows applications under Windows and Unix applications under Unix. So some of the recipes in this chapter aren't portable, although in a few cases I try to make them at least run on Windows or Unix.
You want to run a program.
Use one of the
methods in the
class. Or, on JDK 1.5, use the
start( ) method of
exec( ) method in the
Runtime class lets you run an
external program. The command line you give is broken into strings by a simple
StringTokenizer (Recipe 3.2) and passed on to
the operating system's "execute a program" system call. As an example,
here is a simple program that uses
) to run kwrite
, a windowed text editor program. On Windows, you'd have to ...