M
Memo
I can't get runtime.exec to execute a program in Java. I am trying to
execute a bat file. I read that in order to run bat files as opposed
to .exe files the runtime command has to include "cmd /c start" before
the name of the bat file. I have run bat files successfully this way
before.
The command that I am running works when typed from the command line.
It is:
z:/n4/pkg/MrServers/MrVista/Simu/StartSimEnv.bat -AutoStart
GOLD_256x512.dat
When I try the following code:
File file = new File(imageDir);
cmd = "C:\WINDOWS\system32\cmd /c start "+simDir+"StartSimEnv.bat -
AutoStart " + imageName;
IJ.log("cmd = " + cmd);
Runtime runtime = Runtime.getRuntime();
try{
Process proc = runtime.exec(cmd,null,file);
}
catch(Exception e)
{
IJ.log(e.toString());
}
StartSimEnv.bat file gives a message about the usage being wrong as if
I'm giving the wrong parameters. If I delete imageName from the cmd
string it doesn't complain about usage but doesn't do the task I want
it to do.
I tried putting the parameters in an array as follows:
File file = new File(imageDir);
String[] cmdArray = {cmdPath, "/c", "start",simDir+"StartSimEnv.bat","-
AutoStart",imageName};
IJ.log("cmdArray = " + cmdArray[0] + " " + cmdArray[1] + " " +
cmdArray[2] + " " + cmdArray[3] + " " + cmdArray[4] + " " +
cmdArray[5]);
Runtime runtime = Runtime.getRuntime();
try{
Process proc = runtime.exec(cmdArray,null,file);
}
catch(Exception e)
{
IJ.log(e.toString());
}
I still get a message about usage.
I have made efforts with process builder also but can't get that to
work either. Does anyone have any ideas why this isn't working?
execute a bat file. I read that in order to run bat files as opposed
to .exe files the runtime command has to include "cmd /c start" before
the name of the bat file. I have run bat files successfully this way
before.
The command that I am running works when typed from the command line.
It is:
z:/n4/pkg/MrServers/MrVista/Simu/StartSimEnv.bat -AutoStart
GOLD_256x512.dat
When I try the following code:
File file = new File(imageDir);
cmd = "C:\WINDOWS\system32\cmd /c start "+simDir+"StartSimEnv.bat -
AutoStart " + imageName;
IJ.log("cmd = " + cmd);
Runtime runtime = Runtime.getRuntime();
try{
Process proc = runtime.exec(cmd,null,file);
}
catch(Exception e)
{
IJ.log(e.toString());
}
StartSimEnv.bat file gives a message about the usage being wrong as if
I'm giving the wrong parameters. If I delete imageName from the cmd
string it doesn't complain about usage but doesn't do the task I want
it to do.
I tried putting the parameters in an array as follows:
File file = new File(imageDir);
String[] cmdArray = {cmdPath, "/c", "start",simDir+"StartSimEnv.bat","-
AutoStart",imageName};
IJ.log("cmdArray = " + cmdArray[0] + " " + cmdArray[1] + " " +
cmdArray[2] + " " + cmdArray[3] + " " + cmdArray[4] + " " +
cmdArray[5]);
Runtime runtime = Runtime.getRuntime();
try{
Process proc = runtime.exec(cmdArray,null,file);
}
catch(Exception e)
{
IJ.log(e.toString());
}
I still get a message about usage.
I have made efforts with process builder also but can't get that to
work either. Does anyone have any ideas why this isn't working?