Updater para aplicações swing

8 respostas
dreampeppers99

Estou desenvolvendo uma aplicação swing (java6) e gostaria de que as atualizações fossem automáticas… (abstraisse do usuário a preocupação de estar ou não com a última versão)

Tenho em mente algumas opções.
1º usar webstart, está fora de cogitação tive muitos problemas pois minha aplicação requer segurança (e autorização pra criação, escrita deleção de pastas e arquivos) no nível do usuário logado… e não obtive exito nisso.

2º E parti pra outra ideia, criar um projeto a parte, quando o usuário fosse iniciar o sistema iniciaria primeiro esse update.jar e desse updade.jar (tipo um splashscreen) eu lancaria meu sistema.jar, há como fazer isso? (tentei pelo Runtime.getRuntime().exec(“java -jar sistema.jar”) aparentemente não resolveu)

Acredito que mais pertinente do que as perguntas acima é: já há algo em java feito para esse tipo de problema? ou outra opção que vocês aconselham?

no mais obrigado.

8 Respostas

kaique

Eu pensava que a solução para esse tipo de situação seria mesmo o Java Web Start. Tem certeza que ele não atende às suas restrições? Verifique se seus testes foram bem feitos mesmo…

[]'s.

dreampeppers99

Em tese atenderia (deve atender), talvez o grande culpado seja minha ignorância sobre o webStart, fiz algumas modificações para que o mesmo rodasse “com privilégios do usuário logado” porém o sistema não funcionou corretamente.

A situação típica de: roda perfeito quando executo o jar mas quando tento pelo lançador webstart não funciona. E minha opinião é que seria (talvez) problema de privilégio.

Pra ter uma ideia mais clara, o sistema apresenta uma combo com os drivers (unidades de disco, cd, dvd…) do pc, essa lista nem foi populada. Faço e refaço as coisas com a versão “desktop” rodando local tudo funciona perfeitamente, procurei alguma ajuda no google e as resposta sempre traziam o assunto segurança em alta… eu não consegui faze-lo rodar com os privilégios necessário (claro, isso é o que eu acho, pelos testes que fiz localmente pelo swingão comparando com os testes do webstart), apesar de ter seguido a configuração de um ou dois tutoriais na net.

blackthorne

voces desistiram de usar java web start?
estou precisando de uma solucao parecida com esta, tenho uma aplicacao desktop que precisaria de auto-update.
No caso, nao tenho problemas com nivel de usuario (pois o usuario logado ja restringe isso).

Como ficou sobre o webstart?

dreampeppers99

blackthorne:
voces desistiram de usar java web start?
estou precisando de uma solucao parecida com esta, tenho uma aplicacao desktop que precisaria de auto-update.
No caso, nao tenho problemas com nivel de usuario (pois o usuario logado ja restringe isso).
Como ficou sobre o webstart?

Eu criei uma aplicação updater… que roda antes e faz o download (se necessário) dos arquivos (.jar, gif …) para pasta !
Meu repositorio é um ftp.

paulofafism

Você pode usar o GlassFish como o seu servidor de aplicação. Ai quando você atualizar o seu servidor, seus clientes serão automaticamentes atualizados, já que na máquina do cliente terá apenas um link para acesso a aplicação do servidor.
Eu uso dessa forma e nunca tive problemas.
Minha arquitetura é GlassFish+Hibernate+JPA+SQL Server

blackthorne

oi,
mas minha necessidade é bem mais simples.
Tenho apenas uma app.jar standalone. apenas preciso que ele, mesmo durante sua execucao, seja atualizado apos disponibilizada uma nova release…

Nesse caso, nao eh nenhuma app web. So existiria uma app web para servir as releases dos jars a serem baixados.

dreampeppers99

Basicamente minha opção também era mais simples e tentei (muito) o webstart, mas por falta de conhecimento (eu acredito) não consigui usá-lo.
Veja o esqueleto mor da aplicação:

if (versaoBase() < versaoServidor()) { atualizar("Baixando a nova versão...", 45); pausar(1650l); baixarEInstalarNovaVersao(); atualizar("Nova versão instalada. Versão - " + versaoServidor(), 100); pausar(1650l); }else{ atualizar("A versão instalada é a mais atual.", 100); pausar(1650l); } executarAplicativo();
Esse pausar é pra causar uma impressão de que o processo é complexo. :roll:

blackthorne

certo.

Aqui, nesse post de 2006, provavelmente da versao 5 do java,
vi alguns pontos que realmente fazem sentido sobre não utilizar o java web start:
http://kylecordes.com/2006/04/08/auto-update-no-web-start/

Ainda estou analisando antes de ‘encarar’ fazer tudo do zero.
valew.

Criado 15 de abril de 2009
Ultima resposta 10 de set. de 2009
Respostas 8
Participantes 4