You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse项目报错java.lang.ClassNotFoundException: org.apache.jerby.jdbc.EmbeddedDriver求助

解决 java.lang.ClassNotFoundException: org.apache.jerby.jdbc.EmbeddedDriver 异常

嘿,这个错误我见得不少,核心原因大概率是两个:要么是驱动类名拼错了,要么是项目里没装Derby的驱动包。咱们一步步来搞定它:

1. 先检查驱动类名的拼写——这大概率是坑!

你代码里写的是 org.apache.jerby.jdbc.EmbeddedDriver,但Apache Derby的嵌入式驱动正确类名是 org.apache.derby.jdbc.EmbeddedDriver——注意是derby不是jerby,这绝对是笔误!先把代码里的DRIVER常量改过来:

private static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";

2. 确保项目里引入了Derby的依赖包

如果改完类名还是报错,那就是你的项目classpath里没有Derby的驱动jar包。根据你用的构建工具,对应操作:

Maven项目

在pom.xml里加这个依赖(版本可以用最新稳定版,我这里给的是常用版本):

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.16.1.1</version>
    <scope>runtime</scope>
</dependency>

Gradle项目

在build.gradle的dependencies块里加:

dependencies {
    runtimeOnly 'org.apache.derby:derby:10.16.1.1'
}

手动管理jar包

要是不用构建工具,就去Apache Derby官网下最新二进制包,解压后找到derby.jar,把它添加到项目的classpath里——比如在IDE里右键项目→Build Path→Add External Archives,选中这个jar就行。

3. 小技巧:JDBC 4.0+不用手动加载驱动啦

从JDBC 4.0开始,JVM会自动扫描classpath里的驱动类,所以你完全可以删掉Class.forName(DRIVER);这行代码(如果你的main方法里有这行的话),直接用DriverManager.getConnection获取连接就行,还能避免拼写错误的问题。给你个修正后的完整示例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class CreateDB {
    private static final String JDBC_URL = "jdbc:derby:test;create=true";

    public static void main(String[] args) {
        try (Connection conn = DriverManager.getConnection(JDBC_URL)) {
            System.out.println("数据库连接成功,test库已经创建好啦!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

按这几步走,这个ClassNotFoundException肯定能解决~

内容的提问来源于stack exchange,提问作者Liana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:38:09