web-dev-qa-db-fra.com

java.lang.ClassNotFoundException: org.postgresql.Driver, Android

J'exécute Eclipse sur Windows.

Après ce tutoriel J'ai téléchargé JDBC4, je l’ajoute à mon chemin de construction en utilisant Projet> Propriétés> ajouter un fichier JAR externe, le fichier a été consulté, cela a fonctionné (le fichier .classpath indique le chemin correct de la bibliothèque). 

Le paquet apparaît dans mon dossier Bibliothèques référencées, je continue donc le tutoriel.

    import Java.sql.Connection;
    import Java.sql.DriverManager;
    import Java.sql.PreparedStatement;
    import Java.sql.SQLException;

    ....

    public void open ()
        {
    try {
        Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        conn = DriverManager.getConnection(url, username, password);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

Je pense que ce serait aussi simple que cela mais je suis frappé par cette grande trace de pile longue commençant par

    Java.lang.ClassNotFoundException: org.postgresql.Driver

(Je peux fournir plus si nécessaire)

J'ai essayé include org.postgresql.*; mais cela n'a pas aidé non plus. J'ai aussi essayé le JDBC3 mais pas de chance non plus.

J'ai regardé Pilote JDBC PostgreSQL avec Android qui donnait une réponse vague en disant que je ferais mieux d'utiliser HTTP + JSON. Ce que je n'ai jamais utilisé.

Je suis un nouvel utilisateur d’Android, de Postgresql et du développement Web. Une réponse simple serait donc appréciée.

15
user1438048

Vous devez ajouter le pilote JDBC PostgreSQL dans votre projet comme indiqué dans Mvnrepository .

Gradle:

// http://mvnrepository.com/artifact/postgresql/postgresql
compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4'

Maven:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.0-801.jdbc4</version>
</dependency>

Vous pouvez également télécharger le JAR et l'importer manuellement dans votre projet.

REMARQUE: Compiler tel qu'utilisé dans cette réponse est obsolète. Remplacer par la mise en œuvre comme indiqué sur 3 .

8

Vous devez placer le paquet jar dans le dossier lib (WebContent-WEB-INF-lib) et cliquer avec le bouton droit de la souris sur le chemin de construction du paquet jar, puis ajouter

5
yangya

J'ai rencontré le même problème. mais l'erreur que j'ai faite est la dépendance postgre que j'ai ajoutée uniquement dans la section plugins; Après avoir ajouté la dépendance postgre (la suivante) dans la section des dépendances du projet, cela a fonctionné.

<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>    
</dependency>
0
Jagannath Pattar

C'est un problème de CLASSPATH; le pilote JDBC PostgreSQL n'est pas disponible lorsque le chargeur de classes tente de le charger. Vous devez l'ajouter correctement à votre CLASSPATH.

Si cela fonctionne dans Eclipse, c'est parce que l'ajout d'un JAR au chemin de construction est en l'ajoutant à CLASSPATH. Vous devez comprendre le fonctionnement de CLASSPATH sans l'aide des roues d'entraînement Eclipse.

0
duffymo

Le téléchargement et l'ajout du fichier JAR JDBC au chemin d'installation de l'outil que vous utilisez peut constituer une solution temporaire, car aucune des solutions ci-dessus ne s'est révélée efficace dans mon cas.

0
Shilpa