«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу устранить ошибку «NoClassDefFoundError» в Maven при запуске из командной строки?

Как я могу устранить ошибку «NoClassDefFoundError» в Maven при запуске из командной строки?

Опубликовано 8 ноября 2024 г.
Просматривать:693

How can I resolve the \

Разрешение зависимостей с помощью плагина Shade для NoClassDefFoundError

При первом опыте работы с Maven могут возникнуть несоответствия между Eclipse и использованием командной строки из-за управление зависимостями. Несмотря на успешное создание проекта Maven и добавление зависимостей в Eclipse, выполнение проекта через командную строку может привести к ошибке NoClassDefFoundError.

По умолчанию Maven упаковывает зависимости отдельно и не включает их в скомпилированный файл JAR. Это упущение приводит к сбою виртуальной машины Java при попытке найти классы библиотек во время выполнения.

Вместо того, чтобы вручную добавлять библиотеки в путь к классам, плагин maven-shade-plugin обеспечивает более эффективное решение. Он создает «uber-JAR», который объединяет классы приложения с необходимым библиотечным кодом.

Чтобы реализовать это, добавьте в POM следующую конфигурацию плагина:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.5.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

После добавления этой конфигурации повторно запустите следующие команды:

$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App

Для расширенных параметров конфигурации, таких как указание включенных JAR-файлов или исполняемого JAR-файла, обратитесь к разделу «Примеры» на веб-сайте maven-shade-plugin.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3