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.
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.
Tente usar um array para separar o comando dos argumentos:
String [] cmd = {"cmd" , "/c", "ping > arquivo"};
Process p = Runtime.getRuntime().exec(cmd);
E
err0r
Ainda assim não funcionou. Poderia explicar a necessidade do ‘Process’?
Ataxexe
Ainda assim não funcionou. Poderia explicar a necessidade do ‘Process’?
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.
E
err0r
Brigadão mesmo pela ajuda! O código ficou assim:
Stringline;Processp;//executa o processo e armazena a referência em 'p'p=Runtime.getRuntime().exec("cmd /c dir");//pega o retorno do processoBufferedReaderstdInput=newBufferedReader(newInputStreamReader(p.getInputStream()));//printa o retornowhile((line=stdInput.readLine())!=null){System.out.println(line);}
Sua ideia foi bem melhor, já que nem foi necessário usar arquivo.