Comandos do prompt em JAVA

4 respostas
jj_df

Eu gostaria de saber como faço para executar comandos de prompt dentro do programa!

Para quê?

Quero adicionar novo usuario no system tables do banco de Dados (Estou usando o FireBird) e esse banco usa um arquivo .exe - gsec.exe - que roda no prompt MS/DOS…

Preciso executar os comandos feito um bat…

[i]>gsec -user SYSDBA -password masterkey

add jTextField.getText() ?pw jPasswordField.getText()
quit[/i]

Algo assim…

4 Respostas

M

Olha, vc pode utilizar a seguinte instrução para chamar um programa executável (como se estivesse no DOS).

try { Runtime.getRuntime().exec("cmd.exe /C start notepad.exe c:/temp/teste.txt"); } catch (IOException ex) { ex.printStackTrace(); }

Neste exemplo está sendo chamado o bloco de notas para abrir o arquivo teste.txt

Funciona legal.
Ate mais.

ViniGodoy

Dá uma olhada nas classes ProcessBuilder e Process.

Com o ProcessBuilder é possível até configurar as variáveis de ambiente que o seu processo irá usar.

Agora, se você precisar interagir com o processo, terá que vigiar o InputStrem e o OutputStream de seu process em threads separadas. Use essas classes para enviar/receber informações do processo, sempre que necessário.

caiozanchetti

Dá também, pra simplificar (usando o exemplo do mpisching) fazer assim:

try { Runtime.getRuntime().exec("cmd.exe /k c:/arq.bat"); } catch (IOException ex) { ex.printStackTrace(); }

mpisching:
Olha, vc pode utilizar a seguinte instrução para chamar um programa executável (como se estivesse no DOS).

try { Runtime.getRuntime().exec("cmd.exe /C start notepad.exe c:/temp/teste.txt"); } catch (IOException ex) { ex.printStackTrace(); }

Neste exemplo está sendo chamado o bloco de notas para abrir o arquivo teste.txt

Funciona legal.
Ate mais.

jj_df

Agradeço a todos pela prestatividade e rapidez para a ajuda na solução do problema citado…

Resolvi da seguinte forma e vou compartilhar com vcs…

Criei o arquivo bat, um buffer de char e um buffer de um Array de char…

Vlw galera!!!

try{

File file=new File(“C:/as.bat);

FileOutputStream fo=new FileOutputStream(file);

PrintWriter pw=new PrintWriter(fo);

pw.println(“cd \”);

pw.println(“cd Arquivos de programas\Firebird\Firebird_2_0\bin\”);

pw.println(“gsec -user sysdba -password masterkey -add + jTextField.getText() + -pw +jPasswordField.getText()+”);

pw.println(“exit”);

pw.flush();

pw.close();

fo.close();

Runtime.getRuntime().exec(“cmd.exe /k c:\as.bat);

file.delete ();

}catch(Exception e){

e.printStackTrace();

}

}
Criado 12 de abril de 2007
Ultima resposta 13 de abr. de 2007
Respostas 4
Participantes 4