Atualização de Versão de JARs

1 resposta
E

Bom dia,

Tenho um sistema desktop/swing, com seu JAR + bibliotecas.
Gostaria de fazer um sistema pra atualizá-lo.
Obs: Não funciona via JWS, portanto, não é possível usar esta opção.

No atualizador, eu preciso checar se tem “algum usuário” acessando
o arquivo, pois não conseguirei sobrescrever os JARs nesta situação.
Hoje, manualmente eu vejo no servidor Windows - Meu Computador

  • Gerenciar - Arquivos Abertos. Agora, como eu faria isso automaticamente?
    E também visando uma solução que funcione Windows/Linux…

1 Resposta

T

Acho que você vai ter de fazer o seguinte:

  • Para cada versão do seu software, crie um ou mais JARs com nomes diferentes. Digamos:
    aplicacao-telas-1.0.3.9.jar
    aplicacao-transacoes-1.0.4.7.jar
    Dessa forma, você vai ter as seguintes vantagens:

  • Tem certeza que o jar certo está sendo usado

  • Você não precisa se preocupar se o jar está sendo usado ou não, já que teremos de criar um arquivo novo com nome diferente.

  • Sua aplicação carrega as classes dos JARs adequados, usando um classloader personalizado, ou então usando uma linha de comando diferente para cada versão.

  • Após atualizar os JARs, a sua aplicação tem de sair completamente e iniciar completamente. Isso talvez seja possível fazer com uma batch.

Por exemplo, para a versão 1.2 do seu software que usa os jars aplicacao-telas-1.0.3.9.jar e aplicacao-transacoes-1.0.4.7.jar, a nova linha de comando seria

java -classpath aplicacao-telas-1.0.3.9.jar;aplicacao-transacoes-1.0.4.7.jar MinhaAplicacaoMonstruosa

e na versão 1.3 (que usa aplicacao-telas-1.0.6.7.jar mas ainda continua usando aplicacao-transacoes-1.0.4.7.jar )

java -classpath aplicacao-telas-1.0.6.7.jar;aplicacao-transacoes-1.0.4.7.jar MinhaAplicacaoMonstruosa

Criado 2 de julho de 2009
Ultima resposta 2 de jul. de 2009
Respostas 1
Participantes 2