错误:没有为jdbc找到合适的驱动程序:derby:CoffeeDB; create = true

时间:2013-03-30 00:21:41

标签: jdbc

我花了很多时间阅读以前的帖子,但他们似乎都没有帮助我。我正在尝试从NetBeans运行一个简单的Java应用程序,这里是最简单的代码:

final String DB_URL = "jdbc:derby:CoffeeDB;create=true";         
try
  {
     // Create a connection to the database.
     Connection conn = DriverManager.getConnection(DB_URL);

     // If the DB already exists, drop the tables.
     dropTables(conn);

     // Build the Coffee table.
     buildCoffeeTable(conn);

     // Close the connection.
     conn.close();
  }
  catch (Exception ex)
  {
     System.out.println("ERROR: " + ex.getMessage());
  }

通常是导致问题的环境变量,但我已经检查了它们,它们似乎设置正确:

CLASSPATH: C:\ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derby.jar; C:\ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derbytools.jar;

DERBY_HOME C:\ Program Files \ Java \ jdk1.7.0_17 \ db

路径:(只有关于jdbc的部分) C:\ Program Files \ Java \ jdk1.7.0_17 \ db \ bin

我已经在命令提示符下使用ij创建了一个表,但是当我收到此错误时,我尝试通过Netbeans运行它。有趣的是,当我从命令提示符运行sysinfo时,它出现如下:

------------------ Java信息------------------

Java版本:1.7.0_17

Java供应商:Oracle Corporation

Java home:C:\ Program Files \ Java \ jre7

Java classpath:C:\ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derby.jar; C:\ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derbytools.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ db / lib / derby.jar; C:\ Program Files \ Java \ jdk1.7.0_17 \ db / lib / derbynet.jar; C:\ Program Files \ Java \ jdk1。 7.0_17 \ db / lib / derbyclient.jar; C:\ Program Files \ Java \ jdk1.7.0_17 \ db / lib / derbytools.jar

操作系统名称:Windows Vista

OS架构:amd64

操作系统版本:6.0

--->正如您所看到的,以前的类路径中添加了更多信息,而derbytools.jar和derby.jar会出现两次?结合反斜杠??

通过NetBeans进行调试时,异常来自DriverManager.java文件中的这一行:

    Connection con = aDriver.driver.connect(url, info);     <--------------- here
    if (con != null) {
          // Success!
          println("getConnection returning " + aDriver.driver.getClass().getName());
          return (con);
    }

url是正确的:jdbc:derby:CoffeeDB; create = true但连接返回null并抛出SQLexception。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

异常消息“找不到合适的驱动程序...”表示没有加载的JDBC驱动程序接受该URL。这使得JDBC驱动程序很可能不会包含在应用程序的类路径中

从IDE运行java应用程序时,几乎总是忽略环境变量CLASSPATH,并且总是从可执行jar运行。确保IDE中的构建路径实际上包含derby.jar,或者如果它是可执行jar,它将列在META-INF/manifest.mf属性的Class-Path中。

答案 1 :(得分:1)

您可以右键单击该项目并执行以下步骤...构建 - &gt;配置构建路径 - &gt;图书馆 - &gt;添加外部Jar ...现在您必须指定* .jar文件的路径。 简单示例https://github.com/mraab89/Tutorial_Java_Database_Connectivity_JDBC