COmo fornecer atualizações pro meu programa?

Tenho que fazer um programa que atualize automaticamente cada vez que é aberto.
A principio minha ideia e por um xml num ftp que contem todas as versões do programa, e cada vez que o programa e aberto ele consulta esse xml pra ver se tem alguma versão diferente da dele informada nesse xml, caso tenha, ele irá fechar o programa automaticamente e irá abrir outro aplicativo que fará a atualização e baixará os arquivos informados no mesmo xml.

Qual suas opinioes sobre esse método? Vocês acham que é viavel? Ou tem algum jeito melhor?

Cara muito boa a sua ideia! Eu faria exatamente da mesma forma! :shock:

Você tentou fazer com Java Web Start?

http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/contents.html

Eu faço de uma outra forma, isso ja a muito tempo e funciona muito bem.

No meu banco de dados tenho a versão do sistema/banco e tals, isso no cliente. Tenho um banco de dados de controle online, onde eu atualizo versões do sistema.
Quando o cliente abre o sistema verifico a versão corrente por exemplo 1.0.0b com a versão q informei para o sistema do banco de dados online por exemplo 1.0.0r, isso para aplicação. No caso ja faz o download da v1.0.0r aplicação automaticamente.

Para o controle banco de dados corrente tbm tenho uma tabela chamada “DBApp”, essa tabela basicamente tem informações sobre as tabelas por exemplo Cliente/Estoque/Vendas e tals, ela segue o msm esquema da aplicação mas apenas insere a versao da tabela por exemplo: Clientes1.0,2.0, Vendas 1.0,2.0,3.0 e tals, com isso verifico se o banco da aplicação na tabela do Cliente/Vendas etc… tem ou não novos campos, ou foi alterado algum campo e por ai vai, enfim na tabela Sistema verifico a versão do sistema, na tabela DBApp verifico as tabelas do banco.
Assim eu posso atualizar a versão do sistema independente com o banco e vice-versa.

é isso.

t+ e boa sorte.