Abertura de .jar dando erro

2 respostas
E

A minha idéia é a seguinte: Tenho um método que faz o download de um arquivo .jar. Ao finalizar o download, a aplicação atual é fechada e o novo .jar baixado é aberto. Utilizo o método abaixo para fazer a execução do mesmo. Todavia, quando vou abrir o arquivo baixado um erro aparece dizendo: "A Java exception has occurred". Eu utilizo uma biblioteca de skins Swingx para colorir a aplicação, e antes de eu utiliza-la não tinha problema algum com a abertura do programa.
Para rastrear melhor o que está acontecendo, resolvi abrir o arquivo baixado no Prompt de comandos do Windows, e eis o que aparece:

Exception in thread "main" java.lang.NoClassDefFoundError: org/pushingpixels/sub stance/api/SubstanceLookAndFeel at janelas.menuPrincipal.lookAndFeel(menuPrincipal.java:3345) at janelas.menuPrincipal.(menuPrincipal.java:93) at principal.Main.(Main.java:54) Caused by: java.lang.ClassNotFoundException: org.pushingpixels.substance.api.Sub stanceLookAndFeel at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 3 more
private static void finalizaInstalacao() throws Exception {
       //Mensagem de confirmação de download
       try {  
          SwingUtilities.invokeAndWait(new Runnable() {  
             @Override  
             public void run() {
                Messages.mostraMensagemInformativa("The new version has been downloaded and successfully installed. \nThe software will now be restarted.", null);
                //Comando para executar a nova versão
                    try {
                        Runtime.getRuntime().exec("cmd.exe /c start " + objNomeArqDownload);
                    } catch (IOException ex) {
                        Logger.getLogger(Connection.class.getName()).log(Level.SEVERE, null, ex);
                    }
             }  
          });  

       } catch (Exception e) {  
         throw e;
       }
       //Fecha o programa
        System.exit(2);
    }

O mais estranho é que quando eu tento abrir esse programa manualmente, clicando duas vezes sobre o aplicativo ele funciona.

2 Respostas

E

O seu Jar contém essa classe também, ou ela está em um jar separado? Se estiver em um jar separado, você tem de baixar esse jar também :slight_smile:

E

Está tudo junto no mesmo .jar. Realmente é muito estranho esse erro.

Baixo o .jar pra mesma pasta do aplicativo, contendo a pasta lib e todos os arquivos necessários para a execução do mesmo.

Criado 12 de julho de 2012
Ultima resposta 13 de jul. de 2012
Respostas 2
Participantes 2