Driver

9 respostas
R

Executo a aplicação através do eclipse e funciona sem problemas, encontra o driver(firebirdsql-full) e tudo mais.
O problema ocorre na hora que eu gero o .jar e tento executar a aplicação.

O driver (firebirdsql-full) está indo no .jar (lib/firebirdsql-full.jar) e também está na variável de ambiente CLASSPATH.

Quando a aplicação tenta conectar-se com o banco ocorre o erro.

java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver

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 dao.Conexao.(Conexao.java:24)

at dao.Conexao.getInstance(Conexao.java:13)

at dao.PessoaDao.getInstance(PessoaDao.java:20)

at dao.PessoaDao.(PessoaDao.java:14)

at service.PessoaService.getPessoaDao(PessoaService.java:74)

at service.PessoaService.select(PessoaService.java:26)

at panel.Frame.select(Frame.java:374)

at panel.Frame.execute(Frame.java:321)

at panel.Frame.run(Frame.java:356)

at java.lang.Thread.run(Unknown Source)

Alguém tem alguma dica???
Valeu

9 Respostas

Adolfo_Rodrigues

Tente colocar o firebirdsql-full.jar na raiz do seu jar e não em “lib/firebirdsql-full.jar”.

ramilani12

Vc precisa adicionar essa .JAR na varivael de ambiente CLASSPATH
Vc pode deixar o jar no pacote lib do seu projeto sem problema algum, deixar na raiz do projeto fica “meio” bagunçado

fsquadro

regisbsi,

Quando você gera o jar o Eclipse vai gerar pra você na pasta dist, o jar e uma pasta que contém as suas libs. Quando for executar fora do eclipse, copie a pasta dist toda.

Tente, qualquer coisa poste.

Espero ter ajudado.

ramilani12

Vc precisa adicionar essa .JAR na varivael de ambiente CLASSPATH
Vc pode deixar o jar no pacote lib do seu projeto sem problema algum, deixar na raiz do projeto fica “meio” bagunçado

Adolfo_Rodrigues

Já tive um problema assim uma vez. Pelo que me lembro, não vai adiantar colocar nem na raíz nem na pasta “lib”. Primeiro que para deixar na lib é necessário ao menos indicar isso no manifest, ou não?
O problema acontece porque o classloader não reconhece o jar do firebird se ele não estiver no classpath. Diante disto, você tem duas opções:

  1. Colocar o driver do firebird no classpath.
  2. Escrever um classloader que carregue o driver do firebird.

Estou correto? Acho que é isso…

R

Eu já coloquei o drive na variável de ambiente CLASSPATH também, mas não adiantou.

Adolfo_Rodrigues

Faz o seguinte pra testar:

  1. Empacote o seu jar SEM o driver do firebird e com um MANIFEST.MF mais ou menos assim:

Manifest-Version: 1.0 Class-Path: firebirdsql-full.jar

  1. Coloque o firebirdsql-full.jar no seu classpath (se não tiver certeza de qual é o seu classpath, coloque na pasta na qual o jar do seu programa está)

  2. Rode a aplicação pra ver se funciona.

[]s

Adolfo_Rodrigues

Faz o seguinte pra testar:

  1. Empacote o seu jar SEM o driver do firebird e com um MANIFEST.MF mais ou menos assim:

Manifest-Version: 1.0 Class-Path: firebirdsql-full.jar

  1. Coloque o firebirdsql-full.jar no seu classpath (se não tiver certeza de qual é o seu classpath, coloque na pasta na qual o jar do seu programa está)

  2. Rode a aplicação pra ver se funciona.

[]s

Adolfo_Rodrigues

Faz o seguinte pra testar:

  1. Empacote o seu jar SEM o driver do firebird e com um MANIFEST.MF mais ou menos assim:

Manifest-Version: 1.0 Class-Path: firebirdsql-full.jar

  1. Coloque o firebirdsql-full.jar no seu classpath (se não tiver certeza de qual é o seu classpath, coloque na pasta na qual o jar do seu programa está)

  2. Rode a aplicação pra ver se funciona.

[]s

Criado 2 de maio de 2007
Ultima resposta 2 de mai. de 2007
Respostas 9
Participantes 4