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
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); } } }
Explanation:
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
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!