Получение java.lang.NoClassDefFoundError: не удалось инициализировать исключение класса oracle.jdbc.OracleDriverJAVA

Программисты JAVA общаются здесь
Anonymous
Получение java.lang.NoClassDefFoundError: не удалось инициализировать исключение класса oracle.jdbc.OracleDriver

Сообщение Anonymous »

Я наблюдаю странное поведение при попытке доступа к базе данных с помощью драйверов JDBC. Вот фрагмент кода:

LOGGER.debug("driver is " + driver);
try {
Class.forName(driver);
LOGGER.debug("got driver");
} catch (Throwable t) {
LOGGER.debug("throwable getting driver " + driver);
t.printStackTrace(System.out);
throw t;
}


Когда я запускаю это, вот что я вижу в трассировке стека.

08:20:00.417 [main] DEBUG - driver is com.sybase.jdbc4.jdbc.SybDriver
08:20:00.604 [main] DEBUG - throwable getting driver com.sybase.jdbc4.jdbc.SybDriver
java.lang.NoClassDefFoundError: Could not initialize class oracle.jdbc.OracleDriver
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:555)
at java.sql/java.sql.DriverManager.isDriverAllowed(DriverManager.java:547)
at java.sql/java.sql.DriverManager.getDrivers(DriverManager.java:449)
at java.sql/java.sql.DriverManager.getDrivers(DriverManager.java:426)
at com.sybase.jdbc4.jdbc.SybDriver.registerWithDriverManager(Unknown Source)
at com.sybase.jdbc4.jdbc.SybDriver.(Unknown Source)
at com.sybase.jdbc4.jdbc.SybDriver.(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
... my code


Итак, я вижу, что имя драйвера, которое я пытаюсь получить, — com.sybase.jdbc4.jdbc.SybDriver, что правильно, но по какой-то причине DriverManager ищет oracle.jdbc.OracleDriver.

Что происходит? Этот код работает хорошо уже много лет, и единственная важная информация, которую я могу вспомнить, это то, что я недавно обновил JDK на этом компьютере до Open JDK 11.

>java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)


Подробнее здесь: https://stackoverflow.com/questions/549 ... cle-jdbc-o

Вернуться в «JAVA»