Olá pessoal.
Desenvolvi um programa JAVA para facilitar a execução de um EXE que necessita de muitos parâmetros (não são os parâmetros o problema).
Para isso usei primeiro Runtime.getRuntime(command)…etc… que funcionou até certo ponto. Pois o programa EXE abria mas travava a execução na primeira tela, até que fosse fechado o meu JAVA… Aí o EXE continuava rodando normalmente.
Usei o ProcessBuilder que então funcionou 100%. Abro o JAR, clico em EXECUTAR ele encontra o EXE, e executa perfeitamente. Porém ele não está funcionando em meu cliente que usar Windows Vista e em outro que usa Windows Seven. Eu tenho o XP aqui.
O programa encontra o EXE em todos os casos, o problema é que a função simplesmente não funciona, não apresenta erro, exceção nem nada. Simplesmente não faz nada…
String command[] = new String[6];
command[0]= "cmd";
command[1]= "/C";
command[2]= "start";
command[3]= "\"QuickStart\"";
command[4]= "/b";
command[5]= " \"c:\\programa.exe\" ";
ProcessBuilder builder = new ProcessBuilder();
builder.command(command);
Process myProcess = builder.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(myProcess.getInputStream()));
char[] buffer = new char[1024];
int numRead;
long numWritten = 0;
while ((numRead = stdInput.read(buffer)) != -1) {
//System.out.println(new String(buffer, 0, numRead));
numWritten += numRead;
}
Tanto faz se uso o start, cmd ou qualquer forma de comando válida. No meu computador funciona, mas no do cliente que usa Vista e do outro que usa Seven, não faz nada.
Alguém tem uma explicação? Como tratar essa incompatibilidade?
Ressalto que nenhum erro é apresentando e o EXE está no caminho certo.
Desde já agradeço.
