抛出java.lang.ClassNotFoundException:org.postgresql.

2019-05-17 08:18发布

我在Windows上运行的Eclipse。

下面这个教程我下载JDBC4,使用项目>属性>添加外部JAR把它添加到我的构建路径,浏览到该文件,它的工作( .classpath文件显示正确的库路径)。

该包出现在我引用的库文件夹,所以我继续教程。

    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,但没有运气有两种。

我看着司机JDBC的PostgreSQL与Android这提供了一个模糊的回答说我会过得更好只使用HTTP + JSON。 这是我从来没有使用过。

我全新到Android,PostgreSQL的,网络的发展,使一个简单的答案,将不胜感激。

Answer 1:

您需要在提到增加PostgreSQL JDBC驱动程序在你的项目Mvnrepository 。

摇篮

// 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>

您也可以下载手动JAR和导入到项目中。

注:在这个答案中使用已过时编译。 以实现按更换3 。



Answer 2:

你应该把jar包到lib目录(WebContent-WEB-INF-LIB),然后右键点击jar包,构建路径添加到构建路径



Answer 3:

这是一个问题CLASSPATH; 当类加载器尝试加载它PostgreSQL的JDBC驱动程序不可用。 你需要将它正确地添加到您的CLASSPATH。

如果它工作在Eclipse,这是因为加一个JAR到构建路径将它添加到CLASSPATH。 你必须了解如何CLASSPATH作品,未经Eclipse的训练车轮来帮助你。



Answer 4:

下载并添加JDBC JAR文件到您使用的可能是一个临时的解决方案,以上解决方案的工具的建路在我的情况制定。



Answer 5:

我面临着同样的问题; 但我做的错误是postgre依赖我只加在插件部分; 添加postgre依赖(以下)到项目后依赖性部分,它的工作。

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


Answer 6:

假设你依赖的配置是否正确(见libs中的Android SDK版本17或以上的目录 ,如在评论中指出),你应该能够得到9.2驱动程序与驱动程序管理器注册明确它的工作。

代替:

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

使用:

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

(我也试图与9.3-1100-jdbc41罐子,但是这是行不通的。)

请注意,如由Craig林格在回答中解释的重复问题 ,使用JDBC从Android是一个很少不错的主意,因为JDBC连接不太适合网络通常使用的Android设备使用模式。



文章来源: java.lang.ClassNotFoundException: org.postgresql.Driver, Android