Saida do Runtime

4 respostas
S
Estou usando o Java para fazer aplicativo q usa o net send do windows para enviar mensagens Esse e o codigo:
public static void main(String[] args) {
        try {
            Process pc = Runtime.getRuntime().exec("net send 127.0.0.1 teste");
            DataInputStream dis = (DataInputStream) pc.getInputStream();

            String linha;
            while( (linha = dis.readLine()) != null){
                System.out.println(linha);
            }
           
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Quando uso o net send normal no propt de comando aparece essa mensagem:
The message alias could not be found on the network.

More help is available by typing NET HELPMSG 2273.

mas na minha aplicação nao aparece nada e estou tentando capturar essa mensagem mas nao consegui como faço para pegar a mensagem q e enviada e mostrar na tela?

Valeu

4 Respostas

T

Essa mensagem provavelmente está sendo enviada para a saída de ERRO padrão, que é obtida usando-se getErrorStream.

Para demonstrar isso, execute o mesmo comando em uma linha de comando do Windows:

net send 127.0.0.1 teste 2> arquivo.txt

Se o conteúdo de arquivo.txt for

The message alias could not be found on the network.
 
 More help is available by typing NET HELPMSG 2273.

então você tem de capturar também a "error stream", não somente a "output stream".

S

TB não deu não esta aparecendo essa mensagem:Exception in thread "main" java.lang.ClassCastException: java.io.FileInputStream at Tomcat.main(Tomcat.java:16)

Queri pegar qq mensagem e for emitida e assim mesmo?

T

Você não pode fazer o cast (não dá para converter um BufferedInputStream em um DataInputStream, só com cast). Você tem de usar “encapsulamento”);

DataInputStream errorStream = new DataInputStream (pc.getErrorStream());
S

Blz deu certinho valeu

Criado 13 de junho de 2006
Ultima resposta 13 de jun. de 2006
Respostas 4
Participantes 2