Я создал несколько классов в своем проекте maven и создал файл jar с использованием артефакта IntelliJ IDEA.Вот структура проекта:
+ProjectName:
----src
-----main
------java
------A.B (packages)
--------DB
BP
SP
При создании файла jar я просто включил класс BP.Импортируем файл jar в новый проект и запускаем следующий простой код в основной функции:
import A.B.BP;
public class Test {
public static void main(String[] args) throws Exception {
BP temp = new BP("Test");
}
}
Он создается без ошибок, но во время выполнения я получил следующую ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: A/B/BP
at Test.main(Test.java:8)
Caused by: java.lang.ClassNotFoundException: A.B.BP
Мне показалось, что классы недоступны в classpath во время выполнения.
Точка Я сделал то же самое для классов SP и DFS.Я создаю файл jar и импортирую в новый проект, он работает без ошибок!
Вот мой файл maven pom.xml :
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>provided</scope>
</dependency>
Я прокомментировалзависимости других классов.
Как решить проблему?