Para pegar a saida da execução tem que usar o getInputStream(). É meio
confuso mas é assim mesmo, pois Vc. vai LER o  stdout  do programa
executado.

Dá para pegar também  o  stderr (getErrorStream()), mas ou Vc. pega o
stdout  ou o  stderr. Acho que não dá para pegar os dois na mesma execução.

Segue um exemplo bem simples de como usar esses métodos. Tentei usar a
classe BufferedInputStream para ver se o método available() devolvia a
quantidade de bytes lidos, mas o método devolveu 0.

Roberto Tatemoto


class TesteProcess
{
 public static void main(String[] args) throws IOException
 {
  BufferedInputStream is = new
ufferedInputStream( Runtime.getRuntime().exec("java
Teste1").getInputStream() );

  StringBuffer sb = new StringBuffer();
  int c = is.read();

  while (c > 0)
  {
   sb.append( (char)c );
   c = is.read();

  }
  System.out.print(sb.toString());

 }
}




> Se vc olhar na API... a chamada:
>
> Runtime.getRuntime().exec("linhadecomando");
>
> retorna um objeto tipo Process que este possue um método chamado
> getOuputStream() que retorna um OutputStream com a saída!
>
> Ficaria + ou - assim:
>
> Process p = Runtime.getRuntime().exec("linhadecomando");
> p.getOutputStream();
>
> Nada disso foi testado! Apenas verifiquei que existe!
>
>


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a