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!!!