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?
Best Answer
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 ascd some_directory && some_program
.The following example changes to a different directory and runs
dir
from there. Admittedly, I could justdir
that directory without needing tocd
to it, but this is only an example: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 callingredirectErrorStream(true)
. Doing so gives me only one stream to read from.This gives me the following output on my machine: