web-dev-qa-db-ja.com

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

WindowsでEclipseを実行しています。

このチュートリアル JDBC4をダウンロードし、Project> Properties> add External JARを使用してビルドパスに追加し、ファイルを参照して、動作しました(.classpathファイルは正しいlibパスを示しています)。

パッケージがReferenced Librariesフォルダーに表示されるため、チュートリアルを続けます。

    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();
    }
}

私はそれはそれと同じくらい簡単だと思いますが、この大きな長いスタックトレースでヒットします

    Java.lang.ClassNotFoundException: org.postgresql.Driver

(必要に応じてさらに提供できます)

私は試した include org.postgresql.*;しかし、それも助けにはなりませんでした。私もJDBC3を試しましたが、運もありません。

Androidを使用したDriver JDBC PostgreSQL を見て、HTTP + JSONを使用するだけの方がいいだろうというあいまいな答えを提供しました。私は一度も使用したことがありません。

私はAndroid、postgresql、Web開発にまったく不慣れなので、簡単な答えをいただければ幸いです。

15
user1438048

Mvnrepository で説明されているように、プロジェクトにPostgreSQL JDBCドライバーを追加する必要があります。

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>

ダウンロード the[〜#〜] jar [〜#〜]と手動でプロジェクトにインポートすることもできます。

注:この回答で使用されているコンパイルは非推奨です。 に従って実装に置き換えます。

Jarパッケージをlibフォルダー(WebContent-WEB-INF-lib)に配置し、jar package-build path-addを右クリックしてビルドパスを作成する必要があります。

5
yangya

私は同じ問題に直面しました。しかし、私がした間違いは、プラグインセクションでのみ追加したpostgreの依存関係でした。 postgre依存関係(以下)をプロジェクトの依存関係セクションに追加した後、機能しました。

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

これはCLASSPATHの問題です。 PostgreSQL JDBCドライバーは、クラスローダーがロードしようとすると使用できません。 CLASSPATHに正しく追加する必要があります。

Eclipseで機能する場合は、ビルドパスにJARを追加しているためですis CLASSPATHに追加しています。 EclipseトレーニングホイールなしでCLASSPATHがどのように機能するかを理解する必要があります。

0
duffymo

JDBC JARファイルをダウンロードして、使用しているツールのビルドパスに追加すると、一時的な解決策になる場合があります。私の場合、上記の解決策はどれもうまくいきませんでした。

0
Shilpa