【问题标题】:Postgres : No suitable Driver found for jdbc JAR FilePostgres:找不到适合 jdbc JAR 文件的驱动程序
【发布时间】:2014-04-23 21:14:37
【问题描述】:

我的 Eclipse 程序运行良好。但是,当我尝试将其编译为 JAR 文件时,我收到此错误:

java.sql.SQLException:找不到适合 jdbc:postgresql://10.0.0.19 的驱动程序: 5432/fussballverein

我将连接器添加到我的 java 文件中并将它们导出到 jar 文件中,对吗?

这就是我的 jar 文件的样子:

MyModel.class

MyModel.java

MyControll.class

MyControll.java

Mypanel.class

Mypanel.java

postgresql-9.3-1101.jdbc3.jar

Myframe.class

Myframe.java

当我尝试从命令提示符运行它时,它看起来像这样:

java -jar Gebauer_Laurenz.jar 10.0.0.19 用户名密码fussballverein

我收到了之前的错误。这是我的代码;如果有人可以提供帮助,那就太好了。

public void auführen () throws SQLException, ClassNotFoundException{
    //Connection Objekt
    Connection con = null;
    System.out.println(server+""+db+""+user+""+pw);
    try {
        //Class.forName("org.postgresql.Driver");
    //In DriverManager werden die Verbindungsdaten eingetragen so das eine Verbindung hergestellt werden kann.
            con = DriverManager.getConnection("jdbc:postgresql://"+server+":5432/"+db+"",""+user+"",""+pw+"");

【问题讨论】:

  • PgJDBC jar (postgresql-.....jar) 必须在您的 CLASSPATH 上。

标签: postgresql jdbc jar command connector


【解决方案1】:

这里有两个潜在问题:不正确的类路径,以及使用 JDBC 3 驱动程序(而不是 JDBC 4 驱动程序)而没有显式加载 Driver-class。

问题 1:类路径

依赖的 jar 不应该包含在你自己的 jar 中,它们应该放在你自己的 jar 旁边,然后在 MANIFEST.MF 中的 Class-Path 中指定。

例如,您的布局可能是:

your.jar
postgresql-9.3-1101.jdbc3.jar

那么your.jarMANIFEST.MF 应该有一个条目:

Class-Path: postgresql-9.3-1101.jdbc3.jar

详情请见this tutorial

问题 2:JDBC 3 驱动程序

您使用的驱动程序是 JDBC 3 驱动程序。驱动程序自动加载仅在 JDBC 4 (Java 6) 中引入。 JDBC 4 自动加载的工作原理是驱动程序声明其驱动程序类是什么,可能 JDBC 3 驱动程序没有该文件。您的代码已将Class.forName... 注释掉,并且不会加载驱动程序。

如果您使用的是 Java 6 或更高版本,请升级到 JDBC 4 (Java 6) 或 JDBC 4.1 (Java 7) 驱动程序。

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2012-07-14
    • 2020-05-02
    相关资源
    最近更新 更多