Criar arquivo jar e incluir driver MySQL junto

4 respostas
E

Olá.

Eu segui o tutorial aqui do site de como criar um arquivo jar para a minha aplicação. Deu tudo certo, mas com um porém. O meu programa faz conexão com um Banco de Dados MySQL. Qquando eu rodei o meu arquivo jar ocorreu tudo certo, mas quando chega na parte de fazer a conexão com o BD da um erro na minha aplicação, que eu mesmo tratei no código java para quando não for possível estabelecer a conexão com o BD.
Só lembrando que quando rodo a aplicação no Eclipse ela funciona normalmente.

O que devo fazer?

Obrigado.

4 Respostas

J

Coloque essa linha no arquivo manifest.mf:

Class-Path: lib/mysql-connector-xxx.jar

Crie uma pasta lib na mesma pasta onde está seu jar e coloque esse arquivo jar lá dentro.

E
"jairelton":
Coloque essa linha no arquivo manifest.mf:
Class-Path: lib/mysql-connector-xxx.jar

Crie uma pasta lib na mesma pasta onde está seu jar e coloque esse arquivo jar lá dentro.

Valeu. Fiz exatamente o que você falou, mas o erro persiste. Vou colar o que é exibido no console após o erro ocorrer:

Z:\dbimport>java -jar DBImport.jar
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
        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)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at program.Application.insertInDB(Application.java:221)
        at program.Application.startProcess(Application.java:685)
        at program.Application$9.actionPerformed(Application.java:446)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Z:\dbimport>

Se puder me ajudar eu agradeço

J

Você abriu o seu jar pra ver se o manifest.mf está realmente com as alterações que você fez? E a pasta lib está junto com seu jar e com o mesmo nome do arquivo colocado no manifest.mf?

E

Revisei tudo novamente e está tudo Ok.
Por via das dúvidas eu gerei novamente o arquivo jar. Olhei o manifest.mf e ele nao continha a linha referente ao driver do MySQL.
Gerei novamente o jar e olhei o manifest.mf e ele continuava igual.
Achei estranho, daí resolvi alterar a ordem das linhas dentro do arquivo txt, e não é que deu certo!!! Depois disso no arquivo manifest.mf constava a linha referente ao driver MySQL…Só achei um tanto estranho isso…

Como estava o txt antes (quando não funcionava):

Main-Class: program.Application Name: program/Application.class Java-Bean: True Class-Path: lib/mysql-connector-java-5.0.4-bin.jar

E agora:

Main-Class: program.Application Name: program/Application.class Class-Path: lib/mysql-connector-java-5.0.4-bin.jar Java-Bean: True

É normal acontecer isso?

Obrigado pela ajuda.

Criado 23 de janeiro de 2007
Ultima resposta 23 de jan. de 2007
Respostas 4
Participantes 2