olá pessoal
tenho um arquivo .bat
e para executar ele pelo java utilizo o comando
Runtime.getRuntime().exec("cmd.exe /c start c:\\executa.bat");
mas ele esta abrindo a tela do dos
tem como executar ocultando a tela do dos
obrigado
olá pessoal
tenho um arquivo .bat
e para executar ele pelo java utilizo o comando
Runtime.getRuntime().exec("cmd.exe /c start c:\\executa.bat");
mas ele esta abrindo a tela do dos
tem como executar ocultando a tela do dos
obrigado
ja tentou colocar /Q
Runtime.getRuntime().exec(“cmd.exe /Q /c start c:\executa.bat”);
ou /K
voce tbm pode colocalo minimizado com outro nome
Runtime.getRuntime().exec(“cmd.exe /min “title” c:\executa.bat”);
ja tentei e nao deu certo …
nada pessoal ?
to precisando muito disso
Porque você não executa diretamente o .BAT ao invés de chamar o CMD para executar ele:
Runtime.getRuntime().exec("c:\\a.bat");
Assim não apresentará nenhuma tela do DOS.
Abraços!
ola pessoal
se eu chamar direto o .bat dae ele não executa, não descobri o porque
//Runtime.getRuntime().exec("cmd.exe /c start c:\\JPlugin\\jupdate.bat"); // executa mas mostra a tela do dos, se o usuario fechar a tela do dos nao atualiza
Runtime.getRuntime().exec("c:\\JPlugin\\jupdate.bat"); // não executa
//Runtime.getRuntime().exec("calc"); // funciona
System.exit(0);
porem se eu executar outro aplicativo (calc por exemplo) dae funciona, ele abre a calculadora do windows normalmente
e o meu arquivo .bat esta funcionando, se eu executar ele roda 100 %
o que ue faço no meu .bat é renomear o java que esta sendo executado e atualizo, copio outro arquivo .jar no lugar do que esta executando, como uma atualização automatica
se eu rodo com o cmd.exe funciona 100 % , mas como abre a tela do dos, caso o usuario clique em fechar essa tela do dos, dae meu sistema não vai atualizar automaticamente
segue o conteudo do meu update.bat (coloquei alguns echo apenas para teste, na versão final vou tirar eles, para não mostrar a tela do dos)
cls
timeout 10
if not exist c:\JPlugin\JMaisBB_NEW.jar goto exit
echo renomeando ...
ren c:\JPlugin\JMaisBB.jar JMaisBB_OLD.jar
ren c:\JPlugin\JMaisBB_NEW.jar JMaisBB.jar
start /b c:\JPlugin\jplugin.exe -jar c:\JPlugin\jmaisbb.jar
echo iniciando ....
:exit
echo nao existe atualizacao, saindo ...
exit
nada pessoal ???
Cara fiz um exemplo meio rápido, não cheguei a testar, dê uma olhada se resolve seu problema!!
public class JavaApplication6 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//start /min c:\scripts\vupt.bat
String comando = "start /min C:\\PlanoMLocal\\ExecutaPlMinutos.bat";//caminho onde encontra o executavel
try{
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + comando);
System.exit(0);
}catch(IOException e){
JOptionPane.showMessageDialog(null, "Erro ao executar o comando : " + e);
}
}
}
abraços!!
ola
desta maneira ele abre a tela do dos minimizada
mas o problema é que não está conseguindo executar os comandos do meu arquivo .bat porque a minha aplicação, o meu .jar está em execução ainda, dae o SO não deixa renomear porque o processo está executando
parece que o java aguarda o comando Runtime.getRuntime().exec(""); termina de executar para dar o system.exit(); , correto ?
Bom eu fiz o teste aqui e executa minimizado a tela do dos
Mas o que vc disse esta correto, enquanto tiver executando vc nao consegue fazer nada! só apos executar, ele entra no System.exit(0);
Mas o que vc nao consegue fazer agora!!!?
preciso criar um rotina de atualização automatica do meu arquivo .jar
criei um thread que fica lendo o servidor de tempos em tempos buscando atualização
caso encontre, ele baixa a atualização e no meu .jar chamo um .bat que renomeia o arquivo baixado para o meu .jar que esta sendo executando
mas como o meu .jar ta executando não deixa renomear
Entao depois de baixar, ai sim vc vai renomear, não tem como vc renomear algo que esteja utilizando correto!