Как добавить внешнюю библиотеку в проект в IntelliJ IDEA, чтобы при создании артефакта он все еще имел доступ к классам в библиотеке?Добавление внешней библиотеки в баннер артефакта в IntelliJ IDEA
Я создал новый артефакт Jar из структуры проекта, затем добавил внешний JAR в библиотеки, затем проверил его в списке модулей и, наконец, добавил его к выходу для артефакта. Ни одна из этих работ не работает. Когда я строю и попробуйте запустить мое приложение, он выдает ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: <path of the class trying to use>
Что я упускаю, или я делаю это совершенно неправильно?
Вы только что помогли мне исправить проблему, которую я потратил более 25 часов, возможно, 2 недели, пытаясь расшифровать. Большое спасибо! Кроме того, это работает и все, но какова основа этого? Использует ли IntelliJ Maven или Ant или что-то в этом роде? –
Вы можете использовать проекты на основе Maven, да, но это не связано с вашей ситуацией. Когда вы добавляете новые зависимости к проекту, они не добавляются автоматически к артефактам, которые у вас уже есть, вам нужно снова просмотреть конфигурацию артефакта и добавить все недостающие библиотеки, необходимые для запуска вашего приложения из банки. Другая распространенная ошибка заключается в том, чтобы включить одну банку в другую банку, которая не будет работать, банку нужно либо распаковать внутри основной банки, либо скопировать рядом с ней и связать через манифест (не забудьте добавить какие-либо новые банки в манифест в том дело). – CrazyCoder
В проекте, основанном на Maven, вы можете использовать плагины Maven для создания банок с зависимостями, и вы создадите финальные артефакты, запустив цель Maven вместо использования артефактов IntelliJ IDEA. Таким образом, все новые зависимости вы добавляете к pom.xml' автоматически появится в банке, созданной Maven. В значительной степени то же самое относится к проектам на базе Gradle. – CrazyCoder