Le chargement du pilote JDBC postgreSQL
Je suis en train de charger un JDBC postgreSQL pilote pour un programme Java. Je sais que c'est partout sur Internet. J'ai essayé beaucoup de solutions, mais aucun d'eux n'a fonctionné pour moi.
Le problème est que j'obtiens cette erreur:
Exception in thread "main" java.lang.NoClassDefFoundError:
classes/com/freire/test/JDBCExample/class
Caused by: java.lang.ClassNotFoundException: classes.com.freire.test.JDBCExample.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Et mon code ressemble à ceci:
package com.freire.test;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class JDBCExample
{
public static void main(String[] argv)
{
System.out.println("JDBC Connection Testing");
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
System.out.println("PostgreSQL JDBC Driver not included!");
}
}
}
Et la structure de mon projet ressemble à ceci:
myProject
src
com
freire
test
JDBCExample.java
classes
com
freire
test
JDBCExample.class
lib
postgresql-9.2-1003.jdbc3.jar
La compilation fonctionne très bien:
java -d classes/ src/com/freire/test/JDBCExample.java
Mais l'exécution de produit l'erreur:
java classes/com/freire/test/JDBCExample
La peine de dire que je suis en train de travailler sur un OS X Mountain Lion.
Toute aide sera appréciée.
- Vous devez vous assurer que le
postgresql-9.2-1003.jdbc3.jar
est dans le chemin de classe lorsque vous compilez et exécutez le programme
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez mentionner les noms de package à l'aide de
.
au lieu de/
lors de l'exécution du programme java:Accédez à votre répertoire classes et exécuter JDBCExample comme :
Mais il va pleurer maintenant pour la postgres de la classe du pilote introuvable car postgres pot est manquant dans le classpath.Si vous avez besoin d'utiliser le classpath de l'option lors de l'exécution du programme et ajouter votre postgres jar au classpath:
pour windows:
pour linux:
Sur Linux, exécuter les opérations suivantes:
javac -cp.:postgresql-9.1-901.jdbc4.jar' postgresjavatest.java
java -cp.:postgresql-9.1-901.jdbc4.jar' postgresjavatest
Il des pilotes jdbc pour vous. assurez-vous que le fichier jar est sur le même emplacement
Vous devez vous assurer que le postgresql-9.2-1003.jdbc3.jar est dans le chemin de classe lorsque vous compilez et exécutez le programme
Essayez d'utiliser
pour compiler l'application et
pour l'exécuter...
nb Comme Juned l'a fait, techniquement, vous n'avez pas besoin de la
lib/postgresql-9.2-1003.jdbc3.jar
références dans le classpath, mais la considérer comme une démonstration de la façon de inclus de la compilation des dépendances au sein de la complication du processus 😉-cp lib/postgresql-9.2-1003.jdbc3.jar:./classes
-cp lib/postgresql-9.2-1003.jdbc3.jar:classes
?-cp lib/postgresql-9.2-1003.jdbc3.jar:./classes/
?-cp lib/postgresql-9.2-1003.jdbc3.jar:classes/
?