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

Windows 10+JDK11环境下注册Oracle Thin驱动时遭遇ClassNotFound异常求助

Windows 10+JDK11环境下注册Oracle Thin驱动时遭遇ClassNotFound异常求助

嘿Tom,我来帮你排查这个ClassNotFound的问题!从你描述的情况来看,问题主要出在两个地方:代码里的小错误,以及驱动JAR包没有正确加入项目的类路径中。

首先纠正你代码里的一个明显问题:你一开始在Class.forName()里写的"jdbc:oracle:thin://localhost:1521/XE"是数据库的连接URL,不是驱动类的全限定名!后来你改成"oracle.jdbc.OracleDriver"是对的,但还是找不到类,核心原因是这个驱动类所在的JAR包根本没被你的项目识别到。

接下来给你一步步的解决方案:

  • 第一步:选对适配JDK11的Oracle驱动版本
    Oracle的JDBC驱动版本和JDK版本是对应的,JDK11适合用ojdbc8(支持Java 8-12)或者ojdbc10(支持Java 10-13),别用太老的ojdbc6这类不兼容高版本JDK的包。你可以从Maven仓库获取,或者去Oracle官网下载对应版本的JAR。

  • 第二步:把驱动JAR添加到项目依赖

    • 如果是普通Java项目:下载好的ojdbcX.jar复制到项目的lib目录,然后在IDE里右键点击这个JAR,选择「Add as Library」(IntelliJ)或者在构建路径里添加外部JAR(Eclipse),确保它被加入到编译和运行的类路径中。
    • 如果是Maven项目,直接在pom.xml里添加依赖:
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
  • 第三步:修正你的连接代码
    除了驱动类名的问题,你的连接URL格式也有点小问题,正确的Oracle Thin URL应该用@而不是//,同时规范一下代码结构:
private static final String URL = "jdbc:oracle:thin:@localhost:1521/XE";
private static final String USERNAME = "你的数据库用户名";
private static final String PASSWORD = "你的数据库密码";

public static Connection getConnection() {
    try {
        // 从JDBC 4.0开始,只要驱动在类路径里,这行其实可以省略,不过加上也没问题
        Class.forName("oracle.jdbc.OracleDriver");
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    } catch (ClassNotFoundException | SQLException ex) {
        throw new RuntimeException("Error connecting to the database", ex);
    }
}

另外你提到数据库服务里用这个连接字符串能成功,说明数据库本身是正常的,完全不用怀疑数据库端的配置,问题就出在驱动包的引入和代码里的小疏漏上。按照上面的步骤来,应该就能解决问题啦!

备注:内容来源于stack exchange,提问作者Tom Magaro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 11:07:58