java - Oracle JDBC 驱动程序与 Java 9 java.lang.NoClassDefFoundError : Could not initialize class oracle. jdbc.OracleDriver

标签 java oracle jdbc java-9

我正在尝试让 Java 应用程序与 Java 9+ 一起使用。在 1.9 jre 中运行时,我得到以下堆栈跟踪:

2018-06-06 11:22:54.304 ERROR - main - Replicator - (stderr) java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
2018-06-06 11:22:54.305 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr)    at java.base/java.lang.Class.forName0(Native Method)
2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr)    at java.base/java.lang.Class.forName(Unknown Source)
2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr)    at java.sql/java.sql.DriverManager.isDriverAllowed(Unknown Source)
2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr)    at java.sql/java.sql.DriverManager.isDriverAllowed(Unknown Source)
2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.306 ERROR - main - Replicator - (stderr)    at java.sql/java.sql.DriverManager.getDrivers(Unknown Source)
2018-06-06 11:22:54.307 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.307 ERROR - main - Replicator - (stderr)    at java.sql/java.sql.DriverManager.getDrivers(Unknown Source)
2018-06-06 11:22:54.307 ERROR - main - Replicator - (stderr) 

2018-06-06 11:22:54.307 ERROR - main - Replicator - (stderr)    at org.apache.commons.dbcp2.BasicDataSource.<clinit>(BasicDataSource.java:77)

我已经确认类路径是准确的,因为 1. 这在 Java 8 中运行良好,2. 在 9 中运行时,所有其他 .jar 都正确加载。有人在 Java 9+ 上运行 Oracle jdbc 驱动程序有运气吗?

最佳答案

因此,一旦我打开 DriverManager 的跟踪日志记录,问题就会自行显现。 Sybase 的旧 jconn 驱动程序与 Java 9/10 冲突并导致 DriverManager 出错。鉴于它现在是一个已弃用的驱动程序,这是有道理的。

关于java - Oracle JDBC 驱动程序与 Java 9 java.lang.NoClassDefFoundError : Could not initialize class oracle. jdbc.OracleDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727309/

相关文章:

java - 如何有效地使用 Spring 的 JDBCTemplate 执行 IN() SQL 查询?

java - 当两个 JPanel 具有绝对布局时,将两个 JPanel 移至 MainFrame 内

java - Android 中按钮未加载的背景图像

java - 自动更新 map /集并检查大小

mysql - 我可以在任何数据库中导入 .DMP 文件吗?没有供应商依赖性?

linux - 将 Oracle 从 11.2.0.1 升级到 11.2.0.2 补丁集

SQL 平均(计数(*))?

java - 有没有办法在外部而不是 "db2jcc_application"的 DB2 连接上设置 APPL_NAME(例如,使用系统属性)

java - 如何以通用方式获取 SQL 的行分隔符?

java - 为什么将短变量赋值给 Integer 引用会产生编译时错误?