[RESOLVIDO]..iniciar um processo via JAVA - linha de comando

…pessoal boa tarde

…to com um probleminha, tenho uma aplicação que necessita em um dado momento que um processo esteja rodando (ATIVO) no servidor, toda vez que o servidor PARA eu preciso entrar la na mão (no caso do WINDOS iniciar —> executar) e chamar

soffice.exe -headless -norestore -accept=socket,host=localhost,port=8100;urp :cry:

…ja tentei de tudo qto e jeito fazer isso via JAVA mas so consigo inicializar executaveis a partir de um diretório, tipo:

         Runtime rt = Runtime.getRuntime();
         Process pr = rt.exec("c:\helloworld.exe");

…mas o que preciso executar é exatamente esta linha de comando, alguém tem alguma idéia de como fazer isso via JAVA???
…grato qualquer ajuda !!!

tenta assim:

            // no arquivo teste.bat voce escreve o comando que quer executar
            String path = Utils.getPath()+"\teste.bat"; //Utils.getPath() retorna o caminho completo da aplicação.
            Process proc = Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL cmd /c \""+path+"\"");

…ummmm saquei !!! , so mais uma pergunta Danilo, qual a finalidade dos parâmetros “rundll32 SHELL32.DLL,ShellExec_RunDLL” ???
valeu pela ajuda !!!

Vc cria os processos a partir de chamadas a dlls do sistema.
Neste caso as dlls que estão na linha de comando servem para criar o processo e chamar o console do DOS respectivamente.

Té+!

…cara consegui executar aqui, rodou blz no windows XP, so que apareceu um outro probleminha …

…como falei no XP (SO que roda na minha máquina; “desenvolvimento”) a chamada

Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL cmd /c soffice.exe -headless -norestore -accept=socket,host=localhost,port=8100;urp ");

inicializa um processo do OpenOffice que a partir desse momento fica rodando, com isso posso usar minha aplicação (em modo debug/desenvolvimento) pois a mesma necessita desse processo para executar algumas tarefas, atá ai blz, no entanto meu Servidor (produção) usa o Windows Server 2003 EE , e la a execução do mesmo comando não funciona, o mapeamento do PATH p/ variáveis de ambiente esta igual, mas o processo não é inicializado, pelo que sei chamada a Windows é tudo igual, mas no Server não ta funcionando, sabe se tem alguma configuração de segurança no SERVER pra rodar esse tipo de comando via Runtime ???

…valeu !!!

Derrepente poder ter algum problema de restrição de segurança, mas não sei te dizer não, só usei essa chamada em windows xp.
Pode ser tb que a chamada ao console seja feita de outra forma, daí vc tem que pesquisar na api do windows em questão.

Té+. :smiley:

…cara consegui resolver , realmente era um problema de permissão, mas não exclusivamente do Win 2003 Server e sim do tomCat …existem algumas operações que em um ambiente de produção (deploy) vem por padrão bloqueadas, uma delas e a operação envonvendo Runtime, pra habilitar esse tipo de operação deve-se configurar o arquivo catalina.policy no diretório CONF do TomCat … mais informações a aqui:
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html

…valeu !!! 8)

.

Muito bom! Valew por postar a solução! :smiley: