PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

ClassNotFoundException avec PostgreSQL et JDBC

Le nom du pilote est OK. C'est le même que celui mentionné dans la documentation officielle du pilote. Par conséquent, le pilote n'est tout simplement pas dans le chemin de classe.

Vous dites :

J'ai correctement paramétré le ClassPath de l'application

D'autre part, vous démarrez le programme en appelant simplement :

java JavaPostGreSQLConnectivity

Dans ce cas, aucun pilote PG n'est sur le chemin de classe. Vous devez l'ajouter à la main en utilisant quelque chose comme

java -cp postgresql-jdbc4.jar JavaPostGreSQLConnectivity

MODIFIER La question a été modifiée lors de la saisie, d'où la duplication.

Vous avez ajouté le pot uniquement dans votre IDE. Cela aide l'IDE à compiler votre code. Si vous démarrez le programme en utilisant votre IDE, l'IDE définira également le chemin de classe pour vous. Mais si vous ne démarrez pas via l'IDE, personne ne connaît le chemin de classe correct et il doit être défini à la main.

Vos options sont :

  • démarrez toujours via IDE
  • créer un script batch qui masque le paramètre du chemin de classe (solution courante)
  • définir le CLASSPATH variable d'environnement (ne s'adapte pas aux autres applications Java)
  • créez un "Jar exécutable" et définissez-y le chemin de classe. (Recherchez ce site en utilisant ce terme).
  • placez le pot dans un endroit où la JVM le récupère automatiquement (par exemple dans le lib/ext répertoire du JRE). Mais polluer les bibliothèques JRE/JDK est la pire option.

Remarque :Il s'agit de connaissances de base sur Java et n'ont rien à voir avec PostgreSQL.