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
相关产品推荐
相关产品推荐

