[RESOLVIDO] Atualização do Aplicativo .jar

2 respostas
A

Bom dia!

Estou desenvolvendo um sistema aqui para a empresa e, quando executo o .jar, o programa verifica se há uma versão nova do .jar e se tiver realiza o download…
Só estou enfrentando um problema:

Mando baixar com o mesmo nome (para que o atalho na area de trabalho do cliente aponte para o mesmo caminho). Só que ao substituir o arquivo existente, minha aplicação nao é executada, além do javaw.exe continuar executando.

public static void VerificaVersao() {  
            String versao = "1.0";  
            Download.gravaArquivoDeURL("http://IP_SERVIDOR/version.txt?nocache=" + Math.random(), "version.txt");  
            FileReader fr;  
            try {  
                fr = new FileReader("version.txt");  
                BufferedReader br = new BufferedReader(fr);  
                String str = br.readLine();  
                System.out.println(!str.equals(versao));  
                if(!str.equals(versao)){  
                    Download.gravaArquivoDeURL("http://IP_SERVIDOR/Cotacoes.jar?nocache="+Math.random(), "Cotacoes.jar");  
                }  
            } catch (FileNotFoundException ex) {  
                Logger.getLogger(Download.class.getName()).log(Level.SEVERE, null, ex);  
            }catch(IOException ex){  
                ex.printStackTrace();  
            }  
              
      
        }

Alguem tem alguma dica? Obrigado!

2 Respostas

R

interessante idéia.

mas nao é executada nem com novos dois cliques?

A

Funciona sim, só que o outro processo fica em aberto no sistema.

Corrigi colocando um System.exit(0)

public static void VerificaVersao() {
        String versao = "1.0";
        Download.gravaArquivoDeURL("http:/IP_SERVIDOR/version.txt?nocache=" + Math.random(), "version.txt");
        FileReader fr;
        try {
            fr = new FileReader("version.txt");
            BufferedReader br = new BufferedReader(fr);
            String str = br.readLine();
            System.out.println(!str.equals(versao));
            if(!str.equals(versao)){
                Download.gravaArquivoDeURL("http://IP_SERVIDOR/Cotacoes.jar?nocache="+Math.random(), "Cotacoes.jar");
                JOptionPane.showMessageDialog(null, "Atualizando sistema para versão "+str+". Favor reiniciar o programa");
                System.exit(0);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Download.class.getName()).log(Level.SEVERE, null, ex);
        }catch(IOException ex){
            ex.printStackTrace();
        }
        

    }

Quem gostou da ideia sinta-se livre para utilizar o código. O método 'gravaArquivoDeURL' eu peguei aqui no fórum. Segue link: AQUI

Criado 28 de janeiro de 2013
Ultima resposta 29 de jan. de 2013
Respostas 2
Participantes 2