Earlier in the chapter, we saw how easy it is to create and manipulate multiple threads of execution running within the same Java interpreter. Java also has a java.lang.Process class that represents a program running externally to the interpreter. A Java program can communicate with an external process using streams in the same way that it might communicate with a server running on some other computer on the network. Using a Process is always platform-dependent and is rarely portable, but it is sometimes a useful thing to do:
// Maximize portability by looking up the name of the command to execute // in a configuration file. java.util.Properties config; String cmd = config.getProperty("sysloadcmd"); if (cmd != null) { // Execute the command; Process p represents the running command Process p = Runtime.getRuntime().exec(cmd); // Start the command InputStream pin = p.getInputStream(); // Read bytes from it InputStreamReader cin = new InputStreamReader(pin); // Convert them to chars BufferedReader in = new BufferedReader(cin); // Read lines of chars String load = in.readLine(); // Get the command output in.close(); // Close the stream }
Copyright © 2001 O'Reilly & Associates. All rights reserved.