Executar o comando dir

Como faço pra executar o comando dir do windows utilizando Runtime.getRuntime().exec(), até agora não consegui.

Isso ja tinha sido respondido em outas questoes. De uma olhada em

http://www.guj.com.br/forum/viewtopic.php?t=4
http://www.guj.com.br/forum/viewtopic.php?t=1678
http://www.guj.com.br/forum/viewtopic.php?t=940

Rafael

O Rafael, nenhuma dessas implementaçõpes rodam.

Pra mim funcionaram:

import java.io.*;

public class Teste
{
    public static void main(String args[])
    {
        Process pid = null;

        try {
            pid = Runtime.getRuntime().exec("dir.exe");
            BufferedReader reader = new BufferedReader(new InputStreamReader(pid.getInputStream()));
            String linha;

            while ((linha = reader.readLine()) != null) {
                System.out.println(linha);
            }

            reader.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        try {
            pid.waitFor();
        }
        catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

Rafael

Olha o erro que deu pra mim compilando seu código

java.io.IOException: CreateProcess: dir.exe error=2 at java.lang.Win32Process.create(Native Method) at java.lang.Win32Process.<init>(Win32Process.java:63) at java.lang.Runtime.execInternal(Native Method) at java.lang.Runtime.exec(Runtime.java:550) at java.lang.Runtime.exec(Runtime.java:416) at java.lang.Runtime.exec(Runtime.java:358) at java.lang.Runtime.exec(Runtime.java:322) at Teste.main(Teste.java:10) Exception in thread "main" java.lang.NullPointerException at Teste.main(Teste.java:25)

O Rafael esse código que eu fiz agora rodou aqui em casa, ve se roda com vc também, ele bem parecido com o seu, muda pouca coisa

[code]
import java.io.*;

class execInput {
public static void main(String Argv[]) {
try {
String ls_str;

    Process ls_proc = Runtime.getRuntime().exec("cmd /C dir");

    BufferedReader ls_in = new BufferedReader(new InputStreamReader
                                      (ls_proc.getInputStream()));

    try {
	while ((ls_str = ls_in.readLine()) != null) {
	    System.out.println(ls_str);
	}
    } catch (IOException e) {
	System.exit(0);
    }
} catch (IOException e1) {
    System.err.println(e1);
    System.exit(1);
}

System.exit(0);
}

}[/code]

luiz…esse erro significa que ele nao esta achando o arquivo que esta sendo especificado no Runtime.getRuntime().exec();

Faça o seguinte, ao inves de passar somente o dir.exe, passe o caminho todo ate o comando dir.exe…acho que ele fica dentro da pasta windows/command…não tenho certeza…dá uma procurada e passa o path inteiro…dai funciona!

Ate mais…

O Richard, esse código que eu fiz acima já rodou, mesmo assim valeu!!

que bom que rodou luiz… :lol:
Perceba que se vc tivesse usado o “dir.exe” não funcionaria, mas veja o que vc fez:


Runtime.getRuntime().exec("cmd /C dir");

Vc chamou o comando dir atraves do comando passando dentro do exec(), que na verdade é um comando executável do DOS…vc tb pode colocar esse comando no executar do Iniciar do windows que funciona…(fiz o teste no windows 2000 Professional, não sei se funciona em todos os windows na parte do Iniciar—>Executar).

Ate mais…precisando estamos ai!!! :wink: