Dúvida: Mudança do Nome do Processo Java (javaw.exe)

[color=darkblue]Salve…

Estou com o seguinte problema…

Eu tenho uma app java (um arquivo jar q ficará rodando como um processo na máquina) q moverá uns arquivos q estão nela para um FTP remoto que possuimos
Vale ressaltar q a maquina não é nossa… será de alguns municipios credenciados nossos usufruindo de um beneficio que os condecemos…

Além dessa app, eu tenho uma outra app Java (tbm rodará como um processo) q atuará como um atualizador da versão dessa outra app java…

Porém para atualizar, eu teria q parar o processo, atualizar e depois instartar novamente…

mas como ambos são javaw.exe, se parar, vai parar ambos… o que eu não quero q aconteça…

Alguém tem uma idéias de como fazer isso ?

Saudações…[/color]

[color=darkblue]ouhhh… a situação é tão complexa pra ninguém me dar um apoio ?[/color]

O javaw.exe é o processo da máquina virtual java. Vc deve parar a aplicação e não o processo…

Seria interessante se vc fizesse uma comunicação via socket entre o atualizador e a sua app, para pedir que sua app feche: System.exit(0); e depois que terminar a atualização vc pode reiniciar sua app.

Talvez isso te ajude.

[]'s

Poderia fazer tudo em uma app só, 1 ou mais thread para o atualizador e outra(s) para a app. Sendo que vc tenha uma referencia da app no seu atualizador.

[color=darkblue]Vejam bem…

São dois JARs independentes, rodando como processos na máq (nem interface grafica possuem)…
elas são INDEPENDENTES entre si… e não se comuniquem…

O Objetivo de um desses JARs é apenas baixar uma versão atual (caso exista) em nosso servidor (via internet) do OUTRO JAR q está rodando…
mas para q seja atualizado… esse JAR q atualiza TEM Q PARAR esse outro JAR (que está rodando como processo) para q a Atualização seja concretizada, pra DEPOIS INICIAR -LO novamente…

Saudações…[/color]

Existem diversas maneiras…

Vou te dar um exemplo bem tosco:
Cria um arquivo em determinado local dizendo que existe o update, e a outra app quando ver que tem o arquivo para e faz o update…

faz como eu te disse, faz as duas aplicações conversarem por protocolo (socket) que vai funcionar.

Matar o processo não funciona, porque vc vai matar o processo da máquina virtual.

[]'s

Tealmente existe um processo javaw pra cada programa aberto. O problema é adivinhar qual é.

Um dia vi o thingol falando que voce pode levar o binario java junto e renomear o javaw para o nome da aplicação e executar o jar com ele.
Assim o processo fica com outro nome.

[color=darkblue]Me explica isso direito… carregar o binario junto com o q ? com o javaw.exe ?

renomear o javaw.exe dentro da pasta bin da JRE eu fiz, mas não deu muito certo…

Saudações…
[/color]

Copiar a pasta que tem o javaw junto com a aplicação(Ou fazer o seu sistema procurar esse arquivo, copiar e renomear) para junto do sistema e rodar o jar com esse arquivo renomeado.

Vou ver se encontro o post do thingol.

[quote=Mark_Ameba]Copiar a pasta que tem o javaw junto com a aplicação(Ou fazer o seu sistema procurar esse arquivo, copiar e renomear) para junto do sistema e rodar o jar com esse arquivo renomeado.

Vou ver se encontro o post do thingol.[/quote]

Fiz esse procedimento e realmente funciona.