GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

ClassNotFoundException: org.postgresql.Driver


#1

Poxa galera, estou estressado com esse java.

Tenho o NetBeans 5.5.1 e tenho o jdk 1.6.0.2.
Consegui fazer o que precisava usando o NetBeans, compilo e executo o que quero.
A classe que estou fazendo conecta no banco postgresql e insere dados no banco apartir de um arquivo txt separado por ";".

Bom, preciso executar isso automaticamente dentro do crontab do Linux, algo como o gerenciador de tarefas do windows.

Copiei os arquivos .class para um diretório na /home/usuario/ e tentei executar com o comando:

shell> java minha_classe

e apareceu a seguinte informacão:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file

Busquei alguma solucão e encontrei uma que dizia para mudar as opcões de compilacão do NetBeans para gerar na versão java5 -source 5 -target 5

O erro apresentado dessa vez foi algo do tipo:
o javac que voce possui é da versão 6 e não pode compilar na versão 5.

Verifiquei as versões do java e do javac e realmente nesse pacote o java é 5 e o javac é 6.

Baixei o jdk 1.6.0.3 e instalei em outro diretório.
Tentei executar o .class com o java 6 e outro erro me aparece:

O código está testado e funcionando no NetBeans, mas sem a IDE não vai de jeito nenhum.

OBS: já copie o .jar do jdbc-postgresql nos diretórios apontados no CLASSPATH, inclusive numa outra dica coloquei no diretório jdk-versao/jre/lib/ext.


#2

Ola..

Não fique entressado com Java... Pois cada problema que enfrentamos são como degraus de uma escada rumo ao sucesso...

Quanto mais problemas enfrentar, com certeza mais sabedoria irá adquirir...

Esse erro tá dando pq ele não ta encontrando a lib .jar do driver do postgresql.

Copie o arquivo driver do postgresql para a pasta onde estao suas classes compiladas e na hora de executar o aplicativo:

[i]shell> java -cp arquivo_do_driver.jar minhaClasse


#3

Valeu amigão pela resposta.

Acho que funcionou o comando que voce passou, só que agora apareceu outro erro:
Exception in thread "main" java.lang.NoClassDefFoundError: Mensagem

:frowning:


#4

Obrigado Fernando, tive que acrescentar no comando o diretório das classes que eu estava compilando. O comando ficou assim:

/opt/jdk1.6.0_03/bin/java -cp /root/Classe_Banco/postgresql-8.2-506.jdbc4.jar:/root/Classe_Banco/ Mensagem

/opt/jdk1.6.0_03/bin/java -> é o jdk que instalei em outro diretório.
/root/Classe_Banco/ -> diretório onde armazeno as classes.
postgresql-8.2-506.jdbc4.jar -> drive jdbc para postgresql.
Mensagem -> nome da minha classe.

:smiley:


#5