Sistema de Atualização Automática

5 respostas
Pilantra

E ae pessoal.

Alguém, tem pronto ou sabe me dar uma dica pra fazer atualização automática do meu programa?? Só pra substituir o .jar!!

Eu vi um esquema pra fazer download de um .jar no portaljava mas não deu certo.

Assim evita ficar toda hora passando setups do sistema hehe.

Abraços e obrigado desde já.

5 Respostas

Pilantra

Vixe galera, ninguém pode me passar como se faz o download de um arquivo .jar usando o pacote java.net??

fabiofalci

Usa o java web start

http://java.sun.com/products/javawebstart/

Pilantra

Humm, interessante mas não é viável pra minha aplicação. Preciso baixar o .jar do servidor e substituir pelo original. Eu estou tentando fazer assim:

URL url;
        try {
            url = new URL("jar:http://webdesign.wnet.com.br/pilantra/Visualizador.jar!/");
            JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
            JarFile jar = jarConnection.getJarFile();
            
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        }  catch (IOException ex) {
            ex.printStackTrace();
        }

Só que não dá erro e nem baixa nada também. Alguém tem uma solução??

Abraços.

cassioso

tenho este exemplo:

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) {
                        }
                }
        }
}
kapa01

Cassio.
Como eu faço para saber o tamanho do arquivo antes de fazer o download.
Obrigado.

Criado 2 de abril de 2007
Ultima resposta 11 de jun. de 2014
Respostas 5
Participantes 4