Home > Java > javaTutorial > How to Execute CMD Commands from Different Directories in Java?

How to Execute CMD Commands from Different Directories in Java?

Mary-Kate Olsen
Release: 2025-01-03 05:48:39
Original
662 people have browsed it

How to Execute CMD Commands from Different Directories in Java?

Executing CMD Commands via Java

Problem:

Attempting to execute CMD commands through a Java class but facing challenges understanding the code. The user requires guidance on how to execute specific commands, such as changing directories (cd) and running commands within the new directory.

Solution:

One approach to executing processes from alternative directories to the working directory of your Java program is to navigate to the desired directory and execute the process in the same command line. This can be achieved by instructing cmd.exe to run a command line of the form:

cd some_directory && some_program
Copy after login

Code Example:

The following Java code demonstrates changing to a different directory and executing the "dir" command within that directory:

import java.io.*;

public class CmdTest {
    public static void main(String[] args) throws Exception {
        ProcessBuilder builder = new ProcessBuilder(
            "cmd.exe", "/c", "cd \"C:\Program Files\Microsoft SQL Server\" && dir");
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
    }
}
Copy after login

Explanation:

  • This code employs the ProcessBuilder to execute the command.
  • The "redirectErrorStream(true)" call redirects the process's standard error to its standard output, resulting in only one stream to read.

Sample Output:

The provided code produces the following output:

C:\Users\Luke\StackOverflow>java CmdTest
 Volume in drive C is Windows7
 Volume Serial Number is D8F0-C934

 Directory of C:\Program Files\Microsoft SQL Server

29/07/2011  11:03    <DIR>          .
29/07/2011  11:03    <DIR>          ..
21/01/2011  20:37    <DIR>          100
21/01/2011  20:35    <DIR>          80
21/01/2011  20:35    <DIR>          90
21/01/2011  20:39    <DIR>          MSSQL10_50.SQLEXPRESS
               0 File(s)              0 bytes
               6 Dir(s)  209,496,424,448 bytes free
Copy after login

The above is the detailed content of How to Execute CMD Commands from Different Directories in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template