I found several code snippets for running cmd commands through a Java class, but I wasn't able to understand it.
This is code for opening the cmd
public void excCommand(String new_dir){     Runtime rt = Runtime.getRuntime();     try {         rt.exec(new String[]{"cmd.exe","/c","start"});      } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();     } }   And I found some other links for adding other commands such as cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java
How to open the command prompt and insert commands using Java?
Can anyone help me to understand how to cd a directory such as:
 cd C:\Program Files\Flowella   then run other commands on that directory?
Open the notepad and write a Java program into it. Save the Java program by using the class name followed by . java extension. Open the CMD, type the commands and run the Java program.
Runtime. getRuntime(). exec("c:/elevate Rundll32.exe Powrprof. dll,SetSuspendState ");
The java command-line argument is an argument i.e. passed at the time of running the java program. The arguments passed from the console can be received in the java program and it can be used as an input. So, it provides a convenient way to check the behavior of the program for the different values.
One way to run a process from a different directory to the working directory of your Java program is to change directory and then run the process in the same command line.  You can do this by getting cmd.exe to run a command line such as  cd some_directory && some_program.
The following example changes to a different directory and runs dir from there.  Admittedly, I could just dir that directory without needing to cd to it, but this is only an example:
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);         }     } }   Note also that I'm using a ProcessBuilder to run the command.  Amongst other things, this allows me to redirect the process's standard error into its standard output, by calling redirectErrorStream(true).  Doing so gives me only one stream to read from.
This gives me the following output on my machine:
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 
                        You can try this:-
Process p = Runtime.getRuntime().exec(command); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With