Как создать банку с внешними библиотеками, включенными в Eclipse?

89

Я закончил с проектом, который подключается к базе данных (MySQL). Теперь я хочу экспортировать проект как jar. Но я не знаю, как включить его внешние зависимости? Есть ли способ сделать это в Eclipse или мне следует использовать для этого какие-либо сценарии?

Гханта Сайрам
источник
Как вы собираетесь доставлять приложение. конечному пользователю? Сеть / интернет, диск или флешка, .. еще что-нибудь? Есть ли приложение. есть графический интерфейс?
Эндрю Томпсон

Ответы:

140

Когда вы экспортируете свой проект как «Runnable jar» (правая кнопка мыши на проекте -> Export -> Runnable jar), у вас есть возможность упаковать все зависимости в сгенерированный jar. У него также есть два других способа (см. Снимок экрана) для экспорта ваших библиотек. Помните о лицензиях, когда решаете, какой метод упаковки вы будете использовать.

Библиотеки пакетов

Раскрывающийся список «Конфигурация запуска» заполнен классами, содержащими main(String[])метод. Выбранный класс запускается, когда вы "запускаете" банку.

При экспорте в виде исполняемого файла jar используются зависимости от вашего пути сборки (правая кнопка мыши на проекте -> Путь сборки -> Настроить путь сборки ...). Когда вы экспортируете как «обычную» (неработающую) банку, вы можете выбрать любой файл в своем проекте (ах). Если у вас есть библиотеки в папке вашего проекта, вы можете включить их, но внешние зависимости, например, не может быть включен (для проектов maven поиск здесь ).

Joost
источник
2
@Joost: сэр, я не получаю никаких опций под заголовком конфигурации запуска при попытке экспортировать java-приложение как работающую jar. Что могло быть неправильным или отсутствовать?
Rat-a-tat-a-tat Ratatouille
Eclipse перечисляет известные ему main()методы. Попробуйте запустить приложение один раз (щелкните проект правой кнопкой мыши, «Запуск от имени», «Приложение Java»), а затем снова выполните экспорт.
Joost
Это не имеет отношения к данному вопросу, поскольку в нем четко говорится о Eclipse. Пожалуйста, разместите новый вопрос, если вы не можете найти ответ (который наверняка уже где-то на этом сайте)
Joost
1
Кто-нибудь знает, как это сделать для неработающей банки в eclipse? Нет никаких опций, связанных с «необходимыми библиотеками».
jb1 07
@ jb1 Вы когда-нибудь в этом разбирались?
TheKingElessar
9

Вы можете использовать Export-> Java-> Runnable Jar для создания jar-файла, который включает его зависимости.

В качестве альтернативы вы можете использовать плагин fatjar eclipse для объединения jar-файлов вместе.

Аттила
источник
5

Вы можете щелкнуть проект правой кнопкой мыши, выбрать «Экспорт», ввести «jar» и выбрать «Экспорт исполняемого файла JAR». Там у вас есть опция «Извлечь необходимые библиотеки в сгенерированный JAR».

maerch
источник
3

Лично,

Ни один из приведенных выше ответов не помог мне, я все еще продолжал получать ошибки NoClassDefFound (я использую Maven для зависимостей). Мое решение состояло в том, чтобы собрать с помощью «mvn clean install» и использовать «[project] -jar-with-dependencies.jar», созданный этой командой. Точно так же в Eclipse вы можете щелкнуть правой кнопкой мыши проект -> Запуск от имени -> Maven Install, и он поместит банки в целевую папку.

СМКС
источник
2

Если вы хотите экспортировать все JAR-файлы веб-проекта Java, откройте последний сгенерированный WAR-файл с помощью ZIP-инструмента (например, 7-Zip), перейдите в папку / WEB-INF / lib /. Здесь вы найдете все JAR-файлы, которые вам нужны для этого проекта (как указано в «Справочных библиотеках»).

Питер Сайц
источник
0

При экспорте исходного кода в jar убедитесь, что вы выбрали вариант runnable jar из опций. Затем выберите, хотите ли вы упаковать все jar-файлы зависимостей или просто включить их непосредственно в файл jar. Это зависит от проекта, над которым вы работаете.

Затем вы запускаете jar напрямую с помощью java -jar example.jar.

Чаран Радж
источник
0

Чтобы сгенерировать файл jar в eclipse, щелкните правой кнопкой мыши проект, для которого вы хотите создать, выберите Экспорт> Java> Запускаемый файл Jar,

введите описание изображения здесь

введите описание изображения здесь

Его создать jar-файл, который включает в себя все зависимости из Pom.xml, но, пожалуйста, убедитесь, что проблема с лицензией, если вы используете сторонние зависимости для своего приложения.

Рохит
источник
0

Если это автономный (основной метод) java-проект, тогда не какой-либо конкретный путь помещает все банки внутри проекта, а не какой-либо конкретный путь, затем щелкните правой кнопкой мыши проект -> экспорт -> Запускаемая банка -> Выберите конфигурацию обеда и обработку библиотеки затем выберите переключатель «Упаковать необходимые библиотеки в сгенерированный jar» -> Готово.

Или

Если у вас есть веб-проект, поместите все банки в папку web-inf / lib и выполните тот же шаг.

JitenS
источник