Caractere pipe "|" em um getRuntime.exec() [Resolvido]

Caros,

Estou com uma dificuldade, preciso executar atraves do getRuntime.exec(), o comando "ipconfig | find “IP”, onde, no prompt de comando, me da o resultado desejado, porém na hora de rodar na minha aplicaçãozinha… não vai, ele roda comando, mas não reconhece o caractere pipe “|”, ou seja, meu problema não é saber como o getRuntime.exec funciona, eu uso ele pra rodar vários outros comandos, e vai tudo bem, só o pipe que eu não consegui colocar no meio, vai ai o pedaço do código :


...

tring tests(){
             String texts;
                String res = "";
            boolean a = true;
            try{
            Runtime cmd = Runtime.getRuntime();
              Process processo = cmd.exec("ipconfig | find \"IP\" "); // meu problema está aqui.

Obrigado!

O comando a ser usado é

… cmd.exec("cmd /c "ipconfig | findstr IP " ") …

se for no Windows , e

… cmd.exec ("/bin/sh -c ‘/sbin/ifconfig | grep “inet addr”’ ") …

no Linux.

Vlw kra, funcionou assim, mas curioso que, eu sempre usei "ipconfig | find “IP” desse jeito em vários script .bat, ou até no prório prompt, e funciona, da o mesmo resultado que o findstr, por que raios na app não vai…??

Porque o runtime.exec não sabe ler esses comandos “|”, “>” etc. Eles são comandos do shell (cmd.exe no Windows, /bin/bash no Linux). Portanto, você tem de passar explicitamente o shell para o runtime.exec usando o cmd -c ou o /bin/bash -c.

Mas estranho kra (não quero ser chato, kkk, nem começar uma confuzão… muito pelo contrário…) ipconfig(sem parametros), funciona, runtime.exec(ipconfig), ele traz o resultado completo do comando. Assim como se eu jogo um dir, ping … e por ai vai sem o cmd /c. Mas o mais iimportante é que resolveu meu problema, vlw kra!

Já vi que você nunca testou com dir. Dir não é um executável (o runtime.exec só sabe rodar executáveis).
Dir (ou ls) é um comando do shell.
Para você pegar a saída do dir, teria de usar “cmd /c dir” ou “/bin/sh -c ls”

Bom, isso é verdade, fiz confuzão, uso o dir em outra parte da app, mas é com o cmd /c. E consegui entender o pq do ipconfig | … não funcionar sem o cmd /c. Obrigado.