ClassNotFoundException的使用PostgreSQL和JDBC(ClassNotF

2019-07-05 09:58发布

我有在做与Java和PostgreSQL Database.I连接已经下载了一些困难JDBC4 PostgreSQL驱动,版本9.2-1002驱动程序并正确设置应用程序CLASSPATH中。 我的代码下

import java.sql.*;

public class JavaPostGreSQLConnectivity
{
    public static void main(String[] args) 
    {
        DB db = new DB();        
        db.dbConnect("jdbc:postgresql://127.0.0.1:5432/TestDB", "postgres","pwd");
    }
}

class DB
{
    public DB() {}

    public void dbConnect(String db_connect_string, String db_userid, String db_password)
    {
        try
        { 
            Class.forName("org.postgresql.Driver");
            Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
            System.out.println("connected");

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
};

一旦运行,我提示以下错误:

难道抱怨

的Class.forName( “org.postgresql.Driver”);

如果是的话会是怎样的驱动程序的名称? 不过,我跟着这对我的学习目的。

但是,如果我这样做

C:\Program Files (x86)\Java\jdk1.7.0\bin>java -cp C:\Users\pos
tgresql-9.2-1002.jdbc4.jar; JavaPostGreSQLConnectivity

connected

据我works.Why需要再次明确提及的驱动程序时,我已经把它放在类路径是否正确? 是否有任何替代方法(我只想把JAR文件在类路径和程序应该从那里读)?

提前致谢

Answer 1:

该驱动程序的名称就可以了。 如提到它是同一个官方的文档的驱动程序。 因此,司机只是没有在classpath中。

你说:

我[...]正确设置应用程序类路径

在另一方面,你仅仅通过调用启动程序:

java JavaPostGreSQLConnectivity

在这种情况下,没有PG驱动程序在类路径中。 您必须使用手工添加它像成才

java -cp postgresql-jdbc4.jar JavaPostGreSQLConnectivity

EDIT,同时输入的问题已经改变,因此重复。

你只能在你的IDE添加的罐子。 这有助于IDE编译代码。 如果您在使用启动程序,你IDE则IDE还将设置你的类路径。 但是,如果你不通过IDE开始就再也没有人知道正确的类路径,它必须通过手动设置。

你的选择是:

  • 通过IDE总是开始
  • 使一些批处理脚本其中隐藏类路径(共同溶液)的设置
  • 设置CLASSPATH环境变量(不与其他Java应用程序扩展)
  • 做一个“可执行的JAR”,并设置classpath中出现。 (使用期限内搜索)。
  • 把罐子到在JVM会自动把它捡起一个地方(例如,在lib/ext的JRE的目录)。 但污染JRE / JDK库是最差的选择。

注:这是所有Java基本知识,也无关PostgreSQL的。



文章来源: ClassNotFoundException with PostgreSQL and JDBC