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…
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.
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.
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…
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…
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.
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.
[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.