Bom, eis o meu problema:
Preciso criar um script que execute um comando via prompt do MSDOS, esse comando é uma conexão a um programa, após executado é como se eu estivesse logado no sistema.
Após esse comando preciso executar outro comando via prompt também.
Não posso usar um .bat com os 2 comandos pois o segundo comando só é executado após finalizar a conexão com o programa ( ele entendo como o fim do comando anterior).
Tentei o seguinte script:
try {
// aqui executo o comando q faz a conexao e teoricamente deve me retornar a sessao com o programa externo
process = Runtime.getRuntime().exec(command.toString());
//aqui estou pegando o output do processo
BufferedOutputStream buff = new BufferedOutputStream(process.getOutputStream());
// linha que preciso executar depois de estar conectado
String submit = "submittask task.xml";
String exit = "exit";
try {
//tento passar o comando q preciso
buff.write(submit.getBytes());
// aqui o comando para fechar a sessão
buff.write(exit.getBytes());
buff.flush();
buff.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//espero pelo processo terminar
process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
sem o buff.close() ele fica executando infinitamente.
com o buff.close() ele da um erro no programa q estou executando pelo prompt
Quando passo a String “exit” é esperado que ele saia da “sessão” do programa e libere o prompt para finalizar a rotina e volte a execução normal do script.