我花了很多时间阅读以前的帖子,但似乎没有一个对我有帮助。我正在尝试从 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());
}
通常是环境变量引起的问题,但我已经检查过,它们似乎设置正确:
类路径: 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 之家 C:\Program Files\Java\jdk1.7.0_17\db
PATH: (仅关于jdbc的部分) C:\Program Files\Java\jdk1.7.0_17\db\bin
我已经在命令提示符下使用 ij 创建了一个表并且它有效,当我尝试通过 Netbeans 运行它时出现此错误。有趣的是,当我从命令提示符运行 sysinfo 时,它会像这样出现:
---------------- Java 信息--------------------
Java 版本:1.7.0_17
Java 供应商:甲骨文公司
Java 主目录:C:\Program Files\Java\jre7
Java类路径: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
操作系统架构: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。有什么想法吗?
最佳答案
异常消息“没有找到适合...的驱动程序” 意味着没有加载的 JDBC 驱动程序接受该 URL。这使得 JDBC 驱动程序很可能根本没有包含在应用程序的类路径中
当 Java 应用程序从 IDE 运行时,环境变量 CLASSPATH
几乎总是被忽略,如果从可执行 jar 运行,则总是被忽略。确保 IDE 中的构建路径实际包含 derby.jar,或者如果它是可执行 jar,则它列在 Class 的
属性。META-INF/manifest.mf
中-Path
关于jdbc - 错误 : No suitable driver found for jdbc:derby:CoffeeDB;create=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713441/