PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

ClassNotFoundException com PostgreSQL e JDBC


O nome do driver está OK. É o mesmo mencionado nos documentos oficiais do motorista. Portanto, o driver não está no classpath.

Você diz:

Eu configuro corretamente o ClassPath do aplicativo

Por outro lado, você inicia o programa apenas chamando:
java JavaPostGreSQLConnectivity

Nesse caso, nenhum driver PG está no caminho de classe. Você tem que adicioná-lo manualmente usando algo como
java -cp postgresql-jdbc4.jar JavaPostGreSQLConnectivity

EDITAR A pergunta foi alterada durante a digitação, daí a duplicação.

Você adicionou o jar apenas em seu IDE. Isso ajuda o IDE a compilar seu código. Se você iniciar o programa usando seu IDE, o IDE também definirá o caminho de classe para você. Mas se você não iniciar pelo IDE, ninguém saberá o caminho de classe correto e ele deverá ser definido manualmente.

Suas opções são:
  • iniciar sempre via IDE
  • faça algum script em lote que oculte a configuração do caminho de classe (solução comum)
  • defina o CLASSPATH variável de ambiente (não escala com outros aplicativos Java)
  • faça um "Jar executável" e defina o caminho de classe lá. (Pesquise neste site usando esse termo).
  • coloque o jar em um local onde a JVM o colete automaticamente (por exemplo, no lib/ext diretório do JRE). Mas poluir as bibliotecas JRE/JDK é a pior opção.

Nota:Tudo isso é conhecimento básico de Java e não tem nada a ver com PostgreSQL.