#java #jdbc #impala
Вопрос:
У меня странная проблема, я пытаюсь загрузить класс com.cloudera.impala.jdbc41.Driver
с помощью Class.forName(«com.cloudera.impala.jdbc41.Driver»), но во время выполнения возникает исключение. Может кто-нибудь поправить меня в том, что я здесь делаю не так?
java.lang.NoClassDefFoundError: Could not initialize class com.cloudera.impala.jdbc41.Driver
Печать пути к классу с помощью следующего фрагмента кода печатает Jar, присутствующий в пути к классу.
System.out.println(System.getProperty("java.class.path"))
Комментарии:
1. Пожалуйста, предоставьте полный список исключений. Скорее всего, это покажет причину, по которой класс не удалось инициализировать.
2. Я бы также убедился, что вы используете совместимый JDK. Я думаю, что драйвер JDBC 4.1 должен работать с 7 и 8.
Ответ №1:
Сообщение об ошибке «Не удалось инициализировать класс», вероятно, означает, что класс был найден, но во время инициализации возникло исключение, возможно, в статическом блоке.
Это приводит к тому, что загрузчик классов не может «найти» класс. Сбивает с толку, я знаю. Посмотрите, есть ли в этом классе какие-либо статические блоки, и если да, установите там точку останова отладчика, чтобы увидеть, что происходит.