Executar arquivo .bat

15 respostas
P

Pessoal tem como dentro do Java executar um arquivo .bat?

15 Respostas

T

É claro que tem, basta usar o executável cmd.exe (no caso do Windows XP, 2000, NT, 2003)

cmd /c suabatch.bat

P

Cara to tentando jogar o comando que vc passou no meu arquivo java e da o erro de not statement, qual o meu erro nisso? Como uso o comando que vc passou?

A
Runtime.getRuntime.exec("c:\meu caminho\teste.bat");
T

Não lhe passei nenhuma linha de código em Java; esse é o comando que você vai ter de chamar via Runtime.exec. (Você deve ter achado esquisito ter um “/c” solto assim)

T

Está quase certo - só que arquivos .bat não são executados diretamente por Runtime.exec. Tente:

Runtime.getRuntime.exec("cmd /c c:\meucaminho\teste.bat");

Se houver espaços em branco no nome do diretório, você precisa pôr aspas:

Runtime.getRuntime.exec("cmd /c \"c:\meu caminho\teste.bat\"");
P

Cara dá um erro falando que não foi possívelo localizar a variável getRuntime. Tenho que fazer algo antes de usar isso?

C

Usa assim ,

String comando = C:\teste\arquivo.zip;

try

{

Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando);

}

catch (IOException e)

{

e.printStackTrace();

}
Otata

blz pessoal,
eu queria saber oque seria “rundll32 SHELL32.DLL,ShellExec_RunDLL”,
alguem pode me explicar

Valeu!!

celiomarcos

Otata, respondendo a sua pergunta:

eu queria saber oque seria “rundll32 SHELL32.DLL,ShellExec_RunDLL”,
alguem pode me explicar

rundll32.dll é a o processo usado para executar dlls no win

shell32.dll é a biblioteca que contem as API do shell

ShellExec_RunDLL é quem executa algo no shell do windows.

A

meuUUUUUUUUUUUUUUUUUUUUUUUUUU…

PRESTEM ATENCAO…

TA FALTANDO O PARENTESES DA FUNCTION…

//CERTO
Runtime.getRuntime().exec(“c:\mostra.bat”);

//ERRRADO
//Runtime.getRuntime.exec(“c:\meu caminho\mostra.bat”);

//Runtime.getRuntime() <---- .exec BLA…BLA…BLA…

VALEU ABRAXX E ESPERO TER AJUDADO

A

cimarinho:
Usa assim ,

String comando = C:\teste\arquivo.zip;

try

{

Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando);

}

catch (IOException e)

{

e.printStackTrace();

}</blockquote>

Funciona perfeitamente. Obrigado.

dreampeppers99

Otata:
blz pessoal,
eu queria saber oque seria “rundll32 SHELL32.DLL,ShellExec_RunDLL”,
alguem pode me explicar

Valeu!!


Depois o pessoal diz que não tem como deixar o Windows complicado. :lol:

A

De fato o código acima é bem complicadinho de entender hehehe… Alguém consegue fazer de outra maneira que funcione?

DiogoLPJ

Está quase certo - só que arquivos .bat não são executados diretamente por Runtime.exec. Tente:

Runtime.getRuntime.exec("cmd /c c:\meucaminho\teste.bat");

Se houver espaços em branco no nome do diretório, você precisa pôr aspas:

Runtime.getRuntime.exec("cmd /c \"c:\meu caminho\teste.bat\"");

Deu certinho aqui pra mim! Mas pensei em algo que realmente eu não estava conseguindo fazer nem por um decreto, que era executar um bendito dum processo passando parâmetros para ele…(meu exemplo: “caminho”/udk.exe server dm-deck). Alguém aí já teve a experiência ou sabe alguma coisa sobre?

Abraços,

Diogo

WellingtonRamos

Sim. Se rever o tópico verá que já foi respondida.

Criado 19 de junho de 2006
Ultima resposta 27 de abr. de 2011
Respostas 15
Participantes 11