postgresql java.lang.ClassNotFoundException:驱动程序,安卓系统

cedebl8k  于 2023-02-22  发布在  PostgreSQL
关注(0)|答案(9)|浏览(155)

我在Windows上运行Eclipse。
this tutorial之后,我下载了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,但也没有运气。
我看了看Driver JDBC PostgreSQL with Android,它提供了一个模糊的答案,说我最好只使用HTTP+JSON。我从来没有用过。
我是全新的Android,postgresql,网页开发,所以一个简单的答案将不胜感激。

ioekq8ef

ioekq8ef1#

您需要按照search.maven.org中所述在项目中添加PostgreSQL JDBC驱动程序。

年级

implementation 'org.postgresql:postgresql:42.2.10'

玛文

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.2.10</version>
</dependency>

您也可以手动地downloadJAR并导入到您的项目中。
注意:此答案中使用的编译已弃用.请替换为3中的实现.

monwx1rj

monwx1rj2#

您应该将jar包放入lib文件夹(WebContent-WEB-INF-lib),然后右键单击jar包-构建路径-添加到构建路径

8hhllhi2

8hhllhi23#

这是CLASSPATH问题;当类加载器试图加载PostgreSQL JDBC驱动程序时,该驱动程序不可用。2您需要正确地将其添加到CLASSPATH中。
如果它在Eclipse中工作,那是因为将JAR添加到构建路径 * 就是 * 将它添加到CLASSPATH。您必须了解CLASSPATH在没有Eclipse培训轮帮助的情况下是如何工作的。

ndh0cuux

ndh0cuux4#

下载JDBCJAR文件并将其添加到您正在使用的工具的构建路径中可能是一个临时的解决方案,因为上述解决方案在我的情况下都不奏效。

e5nszbig

e5nszbig5#

我也面临同样的问题但我犯的错误是我只在插件部分添加了postgre依赖项;在将postgre依赖项(如下所示)添加到项目依赖项部分之后,它工作了。

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

icomxhvb6#

我为gradel尝试了无数种方法,我只需要将这一行添加到build.gradel文件中。

dependencies {
    compile group: 'org.postgresql', name: 'postgresql', version: '42.2.1'
}
btxsgosb

btxsgosb7#

我的postgresql驱动程序运行良好,直到我对我的项目做了一些开发:添加了一些新文件包括Map器文件,因为我使用了Spring和MyBatis。突然,当我试图在服务器--Tomcat上运行它时--我得到了无法加载org.postgresql.Driver的错误。
我的解决方案:重新启动Eclipse。可能在某些方面,Eclipse与驱动程序失去了联系。因此需要通过重新启动来刷新它。

igsr9ssn

igsr9ssn8#

在类路径中添加JDBC驱动程序jar文件
转到https://jdbc.postgresql.org/download/
下载jar文件
右键单击java项目单击"Run As""Run Configuration"单击"classpath"选项卡单击项目名称从右侧面板中选择"Add external jar"找到该文件,然后单击"Apply""Run

1bqhqjot

1bqhqjot9#

假设您的依赖项配置正确(参见libs directory in Android SDK version 17 or above,如注解中所指出的),您应该能够通过向驱动程序管理器显式注册9.2驱动程序来使其工作。
取代:

Class.forName("org.postgresql.Driver");

use:

DriverManager.register(new org.postgresql.Driver());

(我也尝试过使用9.3 - 1100-jdbc41 jar,但这不起作用。)
请注意,作为explained by Craig Ringer in an answer to a duplicate question,使用来自Android的JDBC通常不是一个好主意,因为JDBC连接不太适合Android设备通常使用的网络使用模式。

相关问题