Ответ 1
-
Извлечение необходимых библиотек в JAR. Извлекает фактические файлы
.class
из библиотек, которые использует ваше приложение, и помещает эти.class
файлы в исполняемый JAR. Таким образом, исполняемый JAR будет содержать не только файлы.class
вашего приложения, но также файлы.class
всех библиотек, которые использует ваше приложение. -
Необходимые библиотеки пакетов в JAR. Помещает фактические JAR файлы библиотек в ваш исполняемый JAR. Как правило, JAR файл в JAR файле не может быть загружен JVM. Но Eclipse добавляет специальные классы в runnable JAR, чтобы сделать это возможным.
-
Копирование необходимых библиотек в подпапку рядом с JAR. Сохраняет JAR файлы библиотеки полностью отдельно от исполняемого JAR, поэтому исполняемый JAR будет содержать только файлы
.class
вашего приложения.
Вариант № 2 удобен, поскольку он аккуратно упаковывает все в один JAR и сохраняет JAR-библиотеки библиотеки отдельно от файлов приложения .class
.
Однако недостаток в упаковке всего внутри одного JAR (опции №1 и №2) заключается в том, что при обновлении приложения пользователь должен будет загрузить больше данных для обновления приложения. Если JAR сохраняются отдельно, пользователю нужно будет только загрузить JAR, который содержит ваш код приложения, а не один массивный JAR, содержащий код приложения и весь код библиотеки.