Atualizar programa Desktop automaticamente. Alguem pode ajudar?

olá, eu sempre entro no fórum, e sempre consigo ajuda lendo os tópicos.
dessa vez tive de criar uma conta e postar.

eu estou desenvolvendo um software que algumas escolas do município de Botucatu irão utilizar.
desenvolvi meu software utilizando NetBeans.

meu único problema é:
ja que não é apenas uma escola, se eu precisar atualizar meu programa, teria de ir em todas as escolas uma por uma.

pelo que li, existe uma possibilidade do meu software atualizar automaticamente.

será que alguem pode me ajudar?
alguns falaram sobre Java Web start, mas não foram claros o suficiente…

obrigado

Então, o java web start permite isso, com certeza. O ideal é pesquisar sobre ele, dar uma boa olhada na API e nos javadocs.
Outra solução seria criar um verificador, ao iniciar a aplicação, ele verifica se há conexão com a internet, acessa um determinado repositório e compara as versões que estão nele e as locais. Se houver alteração no servidor, ele faz o download automaticamente.
É bem mais complexo.

um usuário aqui do GUJ postou o seguinte código em outro Post

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;

/**
* Classe responsável por realizar o update da aplicação. Faz download do
* arquivo necessário e atualiza as bibliotecas.
*
* @author cassio
*/
public class update{

        /** Arquivo para update */
        private String urlUpdateFile = "http://ENDEREÇO_DO_SEU_JAR/arquivo.jar";

        /** Faz download de arquivo */
        private void download(String address, String localFileName, String host, int porta) {

                // leitor do arquivo a ser baixado
                InputStream in = null;
                // conexão com a internete
                URLConnection conn = null;
                // escritor do arquivo que será baixado
                OutputStream out = null;

                System.out.println("Update.download() BAIXANDO " + address);

                try {
                        URL url = new URL(address);
                        out = new BufferedOutputStream(new FileOutputStream(localFileName));

                        // verifica se existe proxy
                        if(host!=""&&host!=null){
                                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host,porta));
                                conn = url.openConnection(proxy);
                        }else{
                                conn = url.openConnection();
                        }

                        in = conn.getInputStream();
                        byte[] buffer = new byte[1024];
                        int numRead;
                        long numWritten = 0;
                        while ((numRead = in.read(buffer)) != -1) {
                                out.write(buffer, 0, numRead);
                                numWritten += numRead;
                        }
                        System.out.println(localFileName + "\t" + numWritten);

                } catch (Exception exception) {
                        exception.printStackTrace();
                } finally {
                        try {
                                if (in != null) {
                                        in.close();
                                }
                                if (out != null) {
                                        out.close();
                                }
                        } catch (IOException ioe) {
                        }
                }
        }
}

dando uma olhada parece que pode ser que isso resolva o meu problema.

so tenho de entender o código hehe

O que você não entendeu do código acima?

para mim ficou um pouco confuso por exemplo:

private String urlUpdateFile = "http://ENDEREÇO_DO_SEU_JAR/arquivo.jar";

seria o arquivo novo?

private void download(String address, String localFileName, String host, int porta)

esses parâmetros eu ainda estou tentando entender exatamente…

para mim ficou um pouco confuso por exemplo:

private String urlUpdateFile = "http://ENDEREÇO_DO_SEU_JAR/arquivo.jar";

[color=blue] Camarada, este é o endereço na internet onde o aplicativo irá buscar a atualização[/color]

seria o arquivo novo?

private void download(String address, String localFileName, String host, int porta)

[color=blue]isso me parece a chamada de um método que irá receber a string contendo o endereço (na web) do jar a ser baixado), o local em que o jar está no computador, host e port são para estabelecer a conexão com o servidor remoto.[/color]

Jovem,

Nosso colega drsmachado disse tudo, utilize Java Web Start.

Abs,

[quote=Kanin Dragon]Jovem,

Nosso colega drsmachado disse tudo, utilize Java Web Start.

Abs,[/quote]

sim eu entendi que java Web Start seria a melhor opção.

mas ate o dia 20 desse mes estou finalizando algumas cosias no meu trabalho e não tenho tempo de pesquisar a fundo.

alguem conhece um tutorial, ou algum documento simplificado, um codigo exemplo?

pois estou com pouco tempo esse mês, iria me ajudar bastante.

eu so precisaria para atualizar meu software

obrigado

ninguem?

Na edição 82 da javamagazine tem um artigo sobre Webstart http://www.devmedia.com.br/post-17700-Java-Web-Start.html .
Aqui no guj tem um tutorial http://www.guj.com.br/articles/160 que com certeza vai te ajudar.
Agora documento simplificado com código pronto do jeito que vc quer vai ser difícil, porque é certo que vai precisar de adaptação então amigo estude!!

Como já dito, o JWS já faz isso automaticamente mas…

Por que não faz uma aplicação WEB?

[quote=AbelBueno]Como já dito, o JWS já faz isso automaticamente mas…

Por que não faz uma aplicação WEB?[/quote]

bom pois não tenho tanto conhecimento em WEB.

faço faculdade e ano que vem entro na parte de WEB, ja fiz curso tecnico e aprendi o PHP e HTML basico, nunca gostei muito de WEB…

aprendi JAVA, c#, Delphi, tudo por conta própria e pesquisando em fórus , etc…

mas realmente senti falta agora de ter desenvolvido algo em WEB.

foi por falta de conhecimento, mas como meu programa ja esta quase pronto… agora vamos em frente xD

[quote=luiz_renato]Na edição 82 da javamagazine tem um artigo sobre Webstart http://www.devmedia.com.br/post-17700-Java-Web-Start.html .
Aqui no guj tem um tutorial http://www.guj.com.br/articles/160 que com certeza vai te ajudar.
Agora documento simplificado com código pronto do jeito que vc quer vai ser difícil, porque é certo que vai precisar de adaptação então amigo estude!![/quote]

pelo que eu li os dois links que você me passou são extremamente úteis…

muito obrigado!

Para quem aprende tudo isto sozinho, JSP/Servlet ou JSF ou qualquer coisa java web será moleza.

[quote=drsmachado][quote=BBertoni]
aprendi JAVA, c#, Delphi, tudo por conta própria e pesquisando em fórus , etc…
[/quote]

Para quem aprende tudo isto sozinho, JSP/Servlet ou JSF ou qualquer coisa java web será moleza.[/quote]

acredito que não será impossível de aprender… mas entenda o contexto inteiro

eu disse que eu estou sem tempo esse mes… tenho prazo para entrega do projeto e isso seria um PLUS, uma coisa a mais.

por isso recorri ao forum…
agradeço sua ajuda drsmachado, mas o usuário luiz_renato acabou me dando a resposta que eu precisava

algo mais rápido e simples… pois como estou com falta de tempo ira servir.

mas quando eu estiver com mais tempo pretendo estudar mais sobre WEB e java WEB start

BBertoni

Se vc usou o Netbeans isso pode ser útil: http://netbeans.org/kb/docs/java/javase-jws_pt_BR.html .