Executar comando dos com a tela oculta

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!