Executar o comando dir

8 respostas
luiz_ross

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

8 Respostas

Rafael_Steil

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

luiz_ross

O Rafael, nenhuma dessas implementaçõpes rodam.

Rafael_Steil

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

luiz_ross

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)

luiz_ross
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
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);
    }
}
richardpeder

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…

luiz_ross

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

richardpeder

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:

Criado 24 de março de 2003
Ultima resposta 25 de mar. de 2003
Respostas 8
Participantes 3