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
Tente colocar o firebirdsql-full.jar na raiz do seu jar e não em “lib/firebirdsql-full.jar”.
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
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.
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
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:
- Colocar o driver do firebird no classpath.
- Escrever um classloader que carregue o driver do firebird.
Estou correto? Acho que é isso…
Eu já coloquei o drive na variável de ambiente CLASSPATH também, mas não adiantou.
Faz o seguinte pra testar:
- 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
-
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á)
-
Rode a aplicação pra ver se funciona.
[]s
Faz o seguinte pra testar:
- 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
-
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á)
-
Rode a aplicação pra ver se funciona.
[]s
Faz o seguinte pra testar:
- 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
-
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á)
-
Rode a aplicação pra ver se funciona.
[]s