Ja dei uma pesquisada no forum e parece ser a coisa mais facil do mundo. Os usuarios mais avancados sempre respondem : “coloque no seu classpath”. Mas as perguntas continuam pq isso nao funciona de jeito nenhum para algumas pessoas. Para ver se alguem consegue responder de uma forma definitiva isso, eu vou tentar colocar da forma mais completa possivel o problema:
Estou usando o jdbc do firebird. Adicionei os 6 arquivos “.jar” ao meu projeto no Jbuilder e funcionou tudo.
Se eu mando o jbuilder gerar um .jar do meu projeto incluindo os do firebird e outros (como o ireport) ele gera um arquivao, mas tambem funciona. (ambos com o classpath em branco, no maquina do cliente, que so tem a jre).
Se eu gero o .jar so com as classes da minha aplicacao, com o comando “jar -cvmf manifest.txt sistema.jar sistema”, é gerado um arquivo pequeno.
Somente para testar eu deixei o sistema dependente apenas da jdbc do firebird. Neste caso, bastaria ter os arquivos do jdbc no classpath do cliente.
Levei este arquivo para o cliente, onde tem a jre 1.5, uma pasta com o jdbc do firebird. Configurei o classpath assim:
CLASSPATH=.;%JAVA_HOME%;c:\jdbc\jdbc2_0-stdext.jar;c:\jdbc\firebirdsql.jar;c:\jdbc\lib\mini-j2ee.jar;c:\jdbc\lib\mini-concurrent.jar;c:\jdbc\lib\log4j-core.jar;c:\jdbc\lib\jaas.jar
executo o sistema com:
java -jar sistema.jar
Ele abre, mas quando tenta acessar os dados, da este erro:
java.sql.SQLException: org.firebirdsql.jdbc.FBDriver at …
Este erro é o mesmo que acontece quando nao incluo as libs no projeto ao compilar pela IDE, o que faz parecer que o sistema nao esta encontrando os arquivos .jar que estao no classpath.
Se eu pego estes 6 arquivos do jdbc e coloco em jre\lib\ext tudo funciona bem. Mas uma prova de que o problema e com a classpath. Ja configurei na forma do XP, ja tentei no autoexec.bat e criando um bat para chamar a aplicacao, setando antes a classpath (set classpath=…).
Fiz a mesma coisa no linux: o arquivao que inclui as libs externas funciona sem classpath; o arquivo so com o sistema funciona se colocar os jar em jre/lib/ext; e o arquivo jar so com o sistema junto com o classpath (que deveria ser a forma normal) tambem nao funciona no linux.
O classpath do linux eu setei assim:
export CLASSPATH=.:$CLASSPATH:/mnt/hda1/jdbc/jdbc2_0-stdext.jar:/mnt/hda1/jdbc/firebirdsql.jar:/mnt/hda1/jdbc/lib/mini-j2ee.jar:/mnt/hda1/jdbc/lib/mini-concurrent.jar:/mnt/hda1/jdbc/lib/log4j-core.jar:/mnt/hda1/jdbc/lib/jaas.jar
e conferi com export.
===============================
tudo que eu coloquei acima vale para outras libs externas, como o ireport.
===============================
sera que alguem, que ja tenha passado por isso, pode ajudar???
