Executar comando DOS via aplicação Java

2 respostas
FabricioPJ

Olá a todos. Estou tentando executar comandos do DOS via uma aplicação em Java que fiz.

Meu código é o seguinte:

try{
    String[] cmdArray = new String[3];
    cmdArray[0] =  "cmd.exe";
    cmdArray[1] =  "/C";
    cmdArray[2] =  "ipconfig";
    Process p = Runtime.getRuntime().exec(cmdArray);

//    Runtime.getRuntime().exec("cmd.exe");
}
catch(Exception e){
    e.printStackTrace();
}

Este código esta inserido no Action de um botão. O que queria é, ao clicar nesse botão, o PROMPT seria chamado e exibiria informações da rede. Só que nada ocorre, nenhuma Exception é lançada também.

Quando ponho :
Runtime.getRuntime().exec("notepad.exe");
O Notepad é exibido corretamente, mas quando ponho
Runtime.getRuntime().exec("cmd.exe");
Nada ocorre.

Então gostaria de saber porque somente o PROMPT não é exibido.

Agradeço a atenção dos colegas.

2 Respostas

fabiofalci

Usa outra assinatura de exec

public Process exec(String command, String[] envp, File dir)

Onde tu passa no último parâmetro o “the working directory of the subprocess”

FabricioPJ

Não sei se é isso, mas não obtive sucesso...

try{

    File dir = new File("C:\Windows\System32\");

    String[] cmdArray = new String[3];
    cmdArray[0] =  "cmd.exe";
    cmdArray[1] =  "/c";
    cmdArray[2] =  "ipconfig";

    String[] varAmb = new String[3];
    varAmb[0] = "JAVA_HOME";
    varAmb[1] = "PATH";
    varAmb[2] = "CLASSPATH";
    Process p = Runtime.getRuntime().exec(cmdArray, varAmb, dir);

//    Runtime.getRuntime().exec("C:\Windows\System32\cmd.exe");
}
catch(Exception e){
    e.printStackTrace();
}

Acho que estou fazendo alguma besteira...

Criado 12 de agosto de 2009
Ultima resposta 12 de ago. de 2009
Respostas 2
Participantes 2