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(); } }}