Estou usando o tempo de execução para executar comandos do prompt de comando do meu programa Java. No entanto, não estou ciente de como posso obter a saída que o comando retorna.
Aqui está o meu código:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
Eu tentei fazer, System.out.println(proc);
mas isso não retornou nada. A execução desse comando deve retornar dois números separados por ponto e vírgula. Como eu pude obter isso em uma variável para imprimir?
Aqui está o código que estou usando agora:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Mas não estou conseguindo nada como minha saída, mas quando executo esse comando, ele funciona bem.
pwd && ls
não é apenas a execução de um único arquivo, quando você faz isso em um shell que executa tanto o/bin/pwd
e/bin/ls
executáveis. Se você quiser fazer coisas assim dentro do java, precisará fazer algo assim{"/bin/bash","-c", "pwd && ls"}
. Você provavelmente não tem mais a pergunta, mas outras pessoas podem, então pensei em responder.