0

我想使用 JDBC。我的代码:

import java.sql.*;
import java.util.ArrayList;
import java.util.Properties;

public class test {

Connection conn;

public test() throws ClassNotFoundException, SQLException{
    Class.forName("org.postgresql.Driver");
    String url = "jdbc:postgresql://localhost/tb";
    Properties props = new Properties();
    props.setProperty("user","user");
    props.setProperty("password","passwd");
    conn = DriverManager.getConnection(url, props);
    System.out.println(conn.isClosed());
}

public static void main(String[] args) {
    try{
        test t = new test();
    } catch (Exception e){
        e.printStackTrace();        
    }
}
}

我的软件:postgres 9.1,java 1.7

我的尝试:

ziel@gad ~/java/test $ ls
postgresql-9.1-902.jdbc4.jar  test.java
ziel@gad ~/java/test $ javac test.java 
ziel@gad ~/java/test $ java -cp postgresql-9.1-902.jdbc4.jar test
Error: Could not find or load main class test

据谷歌的人说,这应该加载驱动程序。我究竟做错了什么?

4

4 回答 4

3

那是因为当您这样做时-cp postgresql-9.1-902.jdbc4.jar,您将 jar 定义postgresql-9.1-902.jdbc4.jar为类文件的唯一位置,而该类test不在 this 中jar。要解决问题,您必须执行此 cmdjava -cp postgresql-9.1-902.jdbc4.jar;. test

于 2012-07-24T09:21:16.933 回答
3

java -cp postgresql-9.1-902.jdbc4.jar:. test在 Linux / Unix / OS X 下使用

于 2012-07-24T09:28:53.420 回答
1

我猜你正在使用 linux 操作系统,所以试试这个java -cp postgresql-9.1-902.jdbc4.jar:. test。在窗口中java -cp postgresql-9.1-902.jdbc4.jar;. test

于 2012-07-24T09:36:03.220 回答
0

在 Linux 机器上执行以下操作

javac -cp '.:postgresql-9.1-901.jdbc4.jar' postgresjavatest.java

java -cp '.:postgresql-9.1-901.jdbc4.jar' postgresjavatest

确保 jar 文件位于触发命令的相同位置。

于 2014-01-29T10:02:15.960 回答