Retorno do Proccess Runtime (maior q 512 bytes) trava waitFor
4 respostas
R
rafaelquines
Olá pessoal.
Estou desenvolvendo uma aplicação, que via Java, eu chamo o grep do sistema operacional (nesse caso Windows) e quero pegar o retorno dele e enviar por e-mail. O problema é q quando esse retorno do grep passa de 512 bytes, o meu sw trava no método waitFor do Process…
e fica no waitFor pra sempre… A não ser q eu vá no arquivo xxx.txt e diminua o nro de ocorrências da pesquisa do grep, aí sim, o waitFor finaliza normalmente, como deveria ser. Notei q o wait pára qnd o retorno do grep passa de 512 bytes…
Tenho como setar o tamanho desse buffer?!?
T
thingol
Tem certeza que conseguiu fazer o redirecionamento do grep? O comando de redirecionamento, no Windows, só funciona para cmd.exe (exemplo: cmd.exe /c “grep abc *.c > def” ) e no Linux/Unix só funciona para o shell (exemplo: “/bin/bash -c ‘grep abc *.c > def’”).
R
rafaelquines
eh, realmente o redirecionamento não funcionou não…
Mas mesmo assim, o waitFor fica travado…
o que eu fiz foi não usar o waitFor, logo depois do exec, eu estou passando p/ o BufferedReader, e ele se encarrega de esperar a finalização da execução do comando. e mesmo depois dessa execução, eu dou um waitFor, ele diz q ainda tá executando. não sei o que é, mas tá resolvido. não usei o waitFor.