Java 17如何通过JDBC模块化配置连接Oracle数据库实现详细步骤?
- 内容介绍
- 文章标签
- 相关推荐
本文共计790个文字,预计阅读时间需要4分钟。
相关专题:
Oracle JDBC驱动必须用ojdbc11,不是ojdbc8
java 17默认启用模块系统(jep 261),而老版本ojdbc8未声明module-info.java,在jpms下会作为“unnamed module”加载,导致类路径和模块路径混用时出现java.lang.noclassdeffounderror: javax/sql/datasource或module not found: java.xml.bind这类错误。必须使用oracle官方为java 11+编译的ojdbc11(实际兼容java 17),它已正确声明模块名oracle.jdbc。
下载地址:Oracle官网的XE页面或Maven仓库中找com.oracle.database.jdbc:ojdbc11:23.7.0.24.07(版本号需≥21c,推荐用23.x)。不要用Maven Central上非Oracle签名的镜像包,它们常缺模块声明。
模块声明里要显式requires oracle.jdbc
如果你的项目是模块化(有module-info.java),不能只靠--add-modules临时补救。
本文共计790个文字,预计阅读时间需要4分钟。
相关专题:
Oracle JDBC驱动必须用ojdbc11,不是ojdbc8
java 17默认启用模块系统(jep 261),而老版本ojdbc8未声明module-info.java,在jpms下会作为“unnamed module”加载,导致类路径和模块路径混用时出现java.lang.noclassdeffounderror: javax/sql/datasource或module not found: java.xml.bind这类错误。必须使用oracle官方为java 11+编译的ojdbc11(实际兼容java 17),它已正确声明模块名oracle.jdbc。
下载地址:Oracle官网的XE页面或Maven仓库中找com.oracle.database.jdbc:ojdbc11:23.7.0.24.07(版本号需≥21c,推荐用23.x)。不要用Maven Central上非Oracle签名的镜像包,它们常缺模块声明。
模块声明里要显式requires oracle.jdbc
如果你的项目是模块化(有module-info.java),不能只靠--add-modules临时补救。

