Executar comando e pegar retorno

6 respostas
biozit

Tenho de executar um comando e pegar o retorno, mas não está funcionando…

quando pego o inputstream do process vem um monte de numeros…

6 Respostas

rissato

vixi… esse “executar o comando e pegar um retorno” ficou meio confuso… explica melhor o que está acontecendo…

biozit

por exemplo…quero executar um ping e saber o que o comando retornou…
se pingou ou não…

paulorb.pacheco

Opa… amigo entendi o que vc qquer… seguinte:
Vamos supor que vc já tenha o processo java.lang.Process

private StringBuilder mostraProcesso(java.lang.Process processo){
        StringBuilder       sb     = new StringBuilder();
        if(processo != null){
            java.io.InputStream is     = processo.getInputStream();
            byte[] b = new byte[8];
            try{
                while((is.read(b)) != -1){
                    sb.append(new String(b, "UTF8"));
                }
            }
            catch(java.io.IOException ex){
            ex.printStackTrace();
            }
        }
        return sb;        
    }

Flw…

biozit

valeu!!

funcinou!!

ViniGodoy

Só uma coisa… se você estiver usando o Java 5 ou superior, a classe inetaddress faz ping.

Você pode fazer:

if (InetAddress.getByName("www.google.com").isReachable(2000)) {
  //Código quando alcançou
} else {
   //Código quando não alcançou
}

As vantagens são:

  1. O método é multi-plataforma;
  2. O java tentará um ping e, caso não tenha privilégio para isso, tentará fazer uma conexão na porta de echo (7) do servidor.
  3. Você não precisa fazer parse do resultado.

O valor passado no parâmetro do isReacheable é o número de millisegundos que ele deve esperar por uma resposta do host.

paulorb.pacheco

Obrigado ViniGodoy, esta eu não sabia…
:slight_smile:

Criado 4 de janeiro de 2007
Ultima resposta 5 de jan. de 2007
Respostas 6
Participantes 4