PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

ClassNotFoundException con PostgreSQL e JDBC

Il nome del driver è OK. È lo stesso menzionato nei documenti ufficiali del conducente. Pertanto il driver non è nel percorso di classe.

Tu dici:

Ho [...] impostato correttamente l'applicazione ClassPath

D'altra parte avvii il programma semplicemente chiamando:

java JavaPostGreSQLConnectivity

In tal caso nessun driver PG è nel percorso di classe. Devi aggiungerlo a mano usando qualcosa come

java -cp postgresql-jdbc4.jar JavaPostGreSQLConnectivity

MODIFICA La domanda è stata modificata durante la digitazione, da qui la duplicazione.

Hai aggiunto il jar solo nel tuo IDE. Questo aiuta l'IDE a compilare il codice. Se avvii il programma usando il tuo IDE, l'IDE imposterà anche il percorso di classe per te. Ma se non inizi tramite l'IDE, nessuno conosce il percorso di classe corretto e deve essere impostato manualmente.

Le tue opzioni sono:

  • inizia sempre tramite IDE
  • crea uno script batch che nasconda l'impostazione del classpath (soluzione comune)
  • imposta il CLASSPATH variabile di ambiente (non scalabile con altre applicazioni Java)
  • crea un "vaso eseguibile" e imposta lì il percorso di classe. (Cerca in questo sito usando quel termine).
  • metti il ​​jar in una posizione in cui la JVM lo raccolga automaticamente (ad es. in lib/ext directory del JRE). Ma inquinare le librerie JRE/JDK è l'opzione peggiore.

Nota:questa è tutta la conoscenza di base di Java e non ha nulla a che fare con PostgreSQL.