devxlogo

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

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Five Early Architecture Decisions That Quietly Get Expensive

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.