Bom, como eu faço pra executar um comando no prompt e ter o retorno no meu programa? Utilizando um getRuntime().exec, eu consigo executar aplicativos, porém, os comandos usados no cmd não executam. =s
A minha ideia era de redirecionar a saída do prompt para um arquivo, e depois ler o que foi escrito, só que o arquivo não chega a ser criado. Onde está o erro?
Runtime nome;
nome = Runtime.getRuntime();
nome.exec("cmd /c ping > arquivo");
Acabo de chegar aqui, me desculpem se fiz\disse algo errado.
[quote=err0r]Bom, como eu faço pra executar um comando no prompt e ter o retorno no meu programa? Utilizando um getRuntime().exec, eu consigo executar aplicativos, porém, os comandos usados no cmd não executam. =s
A minha ideia era de redirecionar a saída do prompt para um arquivo, e depois ler o que foi escrito, só que o arquivo não chega a ser criado. Onde está o erro?
Runtime nome;
nome = Runtime.getRuntime();
nome.exec("cmd /c ping > arquivo");
Acabo de chegar aqui, me desculpem se fiz\disse algo errado.[/quote]
Tente usar um array para separar o comando dos argumentos:
String [] cmd = {"cmd" , "/c", "ping > arquivo"};
Process p = Runtime.getRuntime().exec(cmd);
Ainda assim não funcionou. Poderia explicar a necessidade do ‘Process’?
[/quote]
Eita, foi só resquício de um CTRL+C / CTRL+V. O Process serve para você controlar o processo criado e obter algumas informações sobre ele. Uma informação seria o output e isso pode até ser útil pra você:
Em vez de copiar outro código, vou colocar o link aqui:
A resposta dessa pergunta tem um código que você pode aproveitar para pegar o output. Em vez de imprimir as linhas do stream você pode armazená-las em um StringBuilder, por exemplo.
[code] String line;
Process p;
//executa o processo e armazena a referência em ‘p’
p = Runtime.getRuntime().exec(“cmd /c dir”);
//pega o retorno do processo
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
//printa o retorno
while ((line = stdInput.readLine()) != null) {
System.out.println(line);
}[/code]
Sua ideia foi bem melhor, já que nem foi necessário usar arquivo.