当前位置: 首页 > 知识库问答 >
问题:

没有找到适合jdbc的驱动程序:postgresql://192.168.1.8:5432/NexentaSearch

夏俊人
2023-03-14

我按照java程序编写

import java.io.*;
import java.util.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.*;

public class Sample {
    public static void main (String[] args) throws IOException  {
                    int CountComputers;
            FileInputStream fstream = new FileInputStream(
                    "/export/hadoop-1.0.1/bin/countcomputers.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
            String result=br.readLine();
            CountComputers=Integer.parseInt(result);
            input.close();
            fstream.close();
            Connection con = null;
            Statement st = null;
                ResultSet rs = null;    
               String url = "jdbc:postgresql://192.168.1.8:5432/NexentaSearch";
                String user = "postgres";
                String password = "valter89";
            ArrayList<String> paths = new ArrayList<String>();
            try
            {
                con = DriverManager.getConnection(url, user, password);
                        st = con.createStatement();
                        rs = st.executeQuery("select path from tasks order by id");
                while (rs.next()) { paths.add(rs.getString(1)); };
                PrintWriter zzz = null;
                    try
                    {
                            zzz = new PrintWriter(new FileOutputStream("/export/hadoop-1.0.1/bin/readwaysfromdatabase.txt"));
                    }
                    catch(FileNotFoundException e)
                    {
                            System.out.println("Error");
                            System.exit(0);
                    }
                    for (int i=0; i<paths.size(); i++)
                {
                    zzz.println("paths[i]=" + paths.get(i) + "\n");
                    }
                    zzz.close();

            }
            catch (SQLException e) 
            {
                System.out.println("Connection Failed! Check output console");
                e.printStackTrace();
            }
        }
}

我编译了这个程序并创建了jar文件

./javac -classpath /folder/postgresql-8.4-703.jdbc3.jar -d /Samplejavaprogram/classes /Samplejavaprogram/src/Sample.java
./jar -cvf /Samplejavaprogram/Sample.jar -C /Samplejavaprogram/classes/ .

Jar具有以下清单文件

Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
Main-Class: Sample
Class-Path: /folder/postgresql-8.4-703.jdbc3.jar

还包含文件 /folder/postgresql-8.4-703.jdbc3.jar.我通过命令启动了Sample.jar

./java -jar -Djava.library.path=/opt/jdk1.7.0_06/lib /Samplejavaprogram/Sample.jar

结果我收到了以下信息

Connection Failed! Check output console
java.sql.SQLException: No suitable driver found for jdbc:postgresql://192.168.1.8:5432/NexentaSearch
    at java.sql.DriverManager.getConnection(DriverManager.java:604)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)
    at org.myorg.Sample.main(Sample.java:33)

我从地址为192.168.1.10的主机启动了该文件,在主机192.168.1.8上它正常运行。帮助消除错误。

共有3个答案

公良信然
2023-03-14

使用DriverManager。registerDriver(new org.postgresql.Driver())

堵琨
2023-03-14

只需使用jar命令提取应用程序与数据库服务器连接所需的文件。e、 jar-xf jdbc_文件。用javac-cp编译它,并用java-cp运行它。

就这样。它会起作用的。

方寒
2023-03-14

您正在使用JDBC 3驱动程序。JDBC 4驱动程序由DriverManager自动加载,而JDBC 3驱动程序不是。因此,您需要调用

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

一旦在您的应用程序中,(在调用DriverManager#getConnection之前)。

或者,您可以从这里使用不需要上述方法调用的JDBC 4 PostgreSQL驱动程序。

 类似资料:
  • 问题内容: 我写了下面的java程序 我编译了这个程序并创建了jar文件 Jar具有以下清单文件 还包含文件/folder/postgresql-8.4-703.jdbc3.jar。我通过命令启动了Sample.jar 结果,我收到以下消息 我从地址为192.168.1.10的主机启动了文件,在主机192.168.1.8上正常完成了文件。帮助消除错误。 问题答案: 您正在使用JDBC 3驱动程序。

  • 我已经花了3个小时试图让我的Java程序与我的Postgres服务器接口。我无法通过错误消息“没有找到适合jdbc:postgresql://localhost:5432/gis的驱动程序”。这是一个Bukkit插件,我正在使用IntelliJ IDEA。 代码: 我尝试过的事情: > 直接将jdbc文件内部添加到jar文件中 在IntelliJ项目中添加jdbc文件作为依赖项 切换到maven,

  • 我尝试了几个教程,我可以得到我的手,但他们都导致相同的错误: 18:28:24,583INFO[stdout](默认任务-1)数据库错误:找不到适合JDBC的驱动程序:postgresql://localhost:5432/postgres 我已经按照本教程配置了连接:如何使用WILDFLY设置POSTGRESQL数据源 并尝试了几种解决问题的方法。我尝试了管理控制台和配置文件。最常见的解决方案是

  • 实际上,我们在某些功能上没有使用任何数据库池,我们使用JDBC连接postgres db,目前系统在生产中,它工作没有任何问题,但突然我们遇到了以下错误。 我们的配置很好,因为我们昨天才遇到这个错误。 有人能猜到我们的生产服务器上发生了什么吗?

  • 试图连接到允许远程连接的免费mysql数据库主机,但我遇到了以下错误: 未找到适合jdbc的驱动程序:mysql://xx2-23-x1-2x1-172.compuxe-1.xmazonaws.com:3306 我使用下面的代码。 编辑 Stack Trace显示在下面:

  • 我正在尝试使用以下代码将我的JavaMaven项目(在Jetty服务器上运行)连接到Google Cloud MySQL数据库: 我已经在pom中包含了这两个依赖项。xml: 我要走了 JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://google... 我不知道该怎么办。我假设依赖项应该处理将JDBC驱动程序添加到我的类路径。