PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

ClassNotFoundException mit PostgreSQL und JDBC

Der Fahrername ist OK. Es ist das gleiche wie in den offiziellen Dokumenten des Fahrers erwähnt. Daher ist der Treiber einfach nicht im Classpath.

Sie sagen:

Ich habe den ClassPath der Anwendung richtig eingestellt

Andererseits starten Sie das Programm einfach durch Aufruf von:

java JavaPostGreSQLConnectivity

In diesem Fall befindet sich kein PG-Treiber auf dem Klassenpfad. Sie müssen es von Hand hinzufügen, indem Sie so etwas wie

verwenden
java -cp postgresql-jdbc4.jar JavaPostGreSQLConnectivity

BEARBEITEN Die Frage wurde während der Eingabe geändert, daher die Duplizierung.

Sie haben das Glas nur in Ihrer IDE hinzugefügt. Dies hilft der IDE, Ihren Code zu kompilieren. Wenn Sie das Programm mit Ihrer IDE starten, legt die IDE auch den Klassenpfad für Sie fest. Aber wenn Sie nicht über die IDE starten, dann kennt niemand den richtigen Klassenpfad und er muss von Hand gesetzt werden.

Ihre Optionen sind:

  • immer über IDE starten
  • Erstellen Sie ein Batch-Skript, das die Einstellung des Klassenpfads verbirgt (übliche Lösung)
  • setzen Sie den CLASSPATH Umgebungsvariable (skaliert nicht mit anderen Java-Anwendungen)
  • Erstellen Sie ein "Executable Jar" und legen Sie dort den Klassenpfad fest. (Durchsuchen Sie diese Website mit diesem Begriff).
  • Stellen Sie das JAR an einem Ort ab, an dem die JVM es automatisch abholt (z. B. in der lib/ext Verzeichnis der JRE). Aber die JRE/JDK-Bibliotheken zu verunreinigen ist die schlechteste Option.

Hinweis:Dies sind alles grundlegende Java-Kenntnisse und haben nichts mit PostgreSQL zu tun.