Oracle JDBC Driver with Java 9 java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver

Oracle JDBC Driver with Java 9 java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver

我正在尝试让 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 中时所有其他 .jars 都正确加载。有没有人有任何运气 运行 Oracle jdbc Java 9+ 上的驱动程序?

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