devxlogo

Execute DOS Commands from a Java Program

Execute DOS Commands from a Java Program

Rather unintuitively, you can’t run DOS commands directly by specifying Runtime.getRuntime().exec(dosCommand) in Java. Instead, to execute a DOS command (such as DIR, or RD) from a Java program, you need to prepend the command to run the Windows command shell cmd /c to the command you want to execute. The /c switch terminates the command shell after the desired command completes. Here’s the syntax:

Runtime.getRuntime().exec("cmd /c " + dosCommand);

And here’s an example that gets the file list in a directory and its subdirectories using the DIR command with the /s (include subdirectories) switch:

import java.io.IOException;import java.io.InputStream;public class ExecuteDOSCommand {   public static void main(String[] args) {      final String dosCommand = "cmd /c dir /s";      final String location = "C:\WINDOWS";      try {         final Process process = Runtime.getRuntime().exec(            dosCommand + " " + location);         final InputStream in = process.getInputStream();         int ch;         while((ch = in.read()) != -1) {            System.out.print((char)ch);         }      } catch (IOException e) {         e.printStackTrace();      }   }}

devx-admin

Share the Post: