Retornar saída do prompt

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’?

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.

Brigadão mesmo pela ajuda! O código ficou assim:

[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.