Executing a CommandSee also e90 Reading Output from a Command.
try { // Execute a command without arguments String command = "ls"; Process child = Runtime.getRuntime().exec(command); // Execute a command with an argument command = "ls /tmp"; child = Runtime.getRuntime().exec(command); } catch (IOException e) { }
If an argument contain spaces, it is necessary to use the overload that requires the command and its arguments to be supplied in an array:
try { // Execute a command with an argument that contains a space String[] commands = new String[]{"grep", "hello world", "/tmp/f.txt"}; commands = new String[]{"grep", "hello world", "c://Documents and Settings//f.txt"}; Process child = Runtime.getRuntime().exec(commands); } catch (IOException e) { }
e90. Reading Output from a Command
try { // Execute command String command = "ls"; Process child = Runtime.getRuntime().exec(command); // Get the input stream and read from it InputStream in = child.getInputStream(); int c; while ((c = in.read()) != -1) { process((char)c); } in.close(); } catch (IOException e) { }e91. Sending Input to a Command
try { // Execute command String command = "cat"; Process child = Runtime.getRuntime().exec(command); // Get output stream to write from it OutputStream out = child.getOutputStream(); out.write("some text".getBytes()); out.close(); } catch (IOException e) { }