Я пытаюсь создать простую программу, которая подключается к Impala, выполняет запрос и возвращает результат запроса.Однако я застрял в самом начале: по какой-то причине я не могу загрузить класс драйвера Impala JDBC из JAR-файла.
Файл JAR, который я пытаюсь загрузить, находится в папке lib /, котораяв корневой папке моего проекта.В противном случае мой проект следует обычной директории Maven.Я добавил путь к файлу JAR в pom.xml моего проекта.Я проверил MANIFEST.MF и путь там.Я попытался запустить мою программу с параметром -classpath lib / ImpalaJDBC41.jar, а также попытался поместить файл JAR в папку src / main / resources /.
Вот часть моего pom.xml, где я установилПуть к классу:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- add Main-Class to manifest file -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.example.App</Main-Class>
<Class-Path>lib/ImpalaJDBC41.jar</Class-Path>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Вот мой MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: 400594
Class-Path: lib/ImpalaJDBC41.jar
Created-By: Apache Maven 3.5.3
Build-Jdk: 1.8.0_172
Main-Class: com.example.App
Вот мой код Java:
package com.example;
import java.lang.Class;
public final class App {
private App() {
}
/**
* @param args The arguments of the program.
*/
public static void main(String[] args) {
try {
Class<?> cls = Class.forName("com.cloudera.impala.jdbc41.Driver");
System.out.println("Class found: " + cls.getName());
} catch (ClassNotFoundException ex) {
System.out.println("Class not found: " + ex);
}
}
}
Независимо от того, что я пытаюсь сделать, яполучить исключение java.lang.ClassNotFoundException.Я подозреваю, что эта проблема как-то связана с classpath, но я не могу понять, что это такое.